Angular CTRL

by wholypantalones

HTML

<div ng-app="ctrl" ng-controller="mindCtrl">

<div ng-repeat="g in buyersGuide" ng-init="mainIndex=$index">
  <div ng-repeat="group in g.groups">
    <div ng-repeat="make in group.makes">
      <h4>{{make.makeText}} {{make.fromYear}}-{{make.toYear}}</h4>

      <div class="panel-group" id="accordion{{partIndex}}{{p.partNumberm}}{{mainIndex}}{{$index}}">
        <div class="panel panel-default" ng-repeat="model in make.models" ng-init="headIndex=$index">
          <div class="panel-heading" id="heading{{partIndex}}{{p.partNumber}}{{mainIndex}}{{headIndex}}">
            <h4 class="panel-title">
              <a data-toggle="collapse" data-parent="#accordion{{partIndex}}{{p.partNumber}}{{mainIndex}}{{$index}}" data-target="#collapse{{partIndex}}{{p.partNumber}}{{mainIndex}}{{$index}}">
                {{model.fromYear}}-{{model.toYear}} {{model.model}}
              </a>
            </h4>
          </div>
          <div id="collapse{{partIndex}}{{p.partNumber}}{{mainIndex}}{{$index}}" class="panel-collapse collapse" ng-class="{in:mainIndex==0&&$index==0}">
            <div class="panel-body">
              <div class="table-responsive clearfix">
                <table class="table m-bottom-0">
                  <tbody>
                    <tr ng-repeat="vehicle in model.sub">
                      <td>
                        {{vehicle.engineText}} {{vehicle.detailsText}}
                      </td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </div><!-- panel body -->
          </div><!-- collapse -->
        </div><!-- panel -->
      </div><!-- panel-group -->
    </div><!-- makes -->
  </div><!-- groups -->
</div><!-- buyersGuide -->

  <pre>{{buyersGuide | json}}</pre>
</div>

JavaScript

angular.module("ctrl", []).controller("mindCtrl", function($scope) {
  $scope.buyerInfo = [{
    "partDescriptionId": "10",
    "fromYear": "02",
    "toYear": "02",
    "numberOfApplications": "1",
    "addDate": "01/03",
    "makeText": "CHEVROLET",
    "modelText": "CAVALIER",
    "engineText": " 4-134  2.2L DOHC",
    "specCode1": "0",
    "specCode2": "0",
    "specCode3": "0",
    "specCode4": "0",
    "detailsText": "CANADA EQPD - US EQPD - 16 VALVES - MANUFACTURER OE RECOMMENDED OIL CHANGE INTERVALS",
    "coverageOrderNumber": "1830",
    "coverageLineDescription": "Filters",
    "lineCode": "WIF",
    "makeCode": "5",
    "modelCode": "3",
    "engineCode": "9",
    "groupText": "Engine Filters & PCV",
    "partDescription": "Oil Filter",
    "perCarQuantity": "01/03",
    "manufacturerName": "WIX",
    "groupNumber": "1"
  }, {
    "partDescriptionId": "10",
    "fromYear": "03",
    "toYear": "04",
    "numberOfApplications": "2",
    "addDate": "01/03",
    "makeText": "CHEVROLET",
    "modelText": "CAVALIER",
    "engineText": " 4-134  2.2L DOHC",
    "specCode1": "0",
    "specCode2": "0",
    "specCode3": "0",
    "specCode4": "0",
    "detailsText": "GAS ENG - OE #24460713 - MANUFACTURER OE RECOMMENDED OIL CHANGE INTERVALS CANADA EQPD - US EQPD - L4-2198CC/134CID 2.2L ENG MEXICO - L4-2190CC/134CID 2.2L ENG",
    "coverageOrderNumber": "1830",
    "coverageLineDescription": "Filters",
    "lineCode": "WIF",
    "makeCode": "5",
    "modelCode": "3",
    "engineCode": "9",
    "groupText": "Engine Filters & PCV",
    "partDescription": "Oil Filter",
    "perCarQuantity": "01/03",
    "manufacturerName": "WIX",
    "groupNumber": "1"
  }, {
    "partDescriptionId": "10",
    "fromYear": "05",
    "toYear": "05",
    "numberOfApplications": "1",
    "addDate": "01/03",
    "makeText": "CHEVROLET",
    "modelText": "CAVALIER",
    "engineText": " 4-134  2.2L DOHC",
    "specCode1": "0",
    "specCode2": "0",
    "specCode3": "0",
    "specCode4":...