Angular Accordion Test

by Yatin Luthra

HTML

<body ng-app='mymodule'>
  <div ng-controller='mycontroller'>
    <accordion ng-repeat="fee in fees">
      <accordion-group ng-if="fee.feeBag.length">
        <accordion-heading>
          {{fee.headingName}}
        </accordion-heading>
          <div class="feecode-height" ng-repeat="feeParameter in fee.feeBag">
            <div class="row">
              <div class="col-xs-1">{{feeParameter.name}}</div>
              <div class="col-xs-4">{{feeParameter.text}}</div>
              <div class="col-xs-2" >{{feeParameter.amount}}</div>
            </div>
          </div>
      </accordion-group>
    </accordion>
  </div>
</body>

JavaScript

angular.module('mymodule', [])
.controller('mycontroller', ['$scope', function($scope){
	$scope.otherFees = [{'name': 1, 'text': 'ok', 'amount': 2}, {'name': 2, 'text': 'hello', 'amount': 3}, {'name': 3, 'text': 'cool', 'amount': 3}];

  $scope.fees = [
    { 
      'headingName': 'firstHeader',
      'feeBag': [
        {'name': 1}
      ]
    }, 
    {
      'headingName': 'secondHeader',    
      'feeBag': [
        {'name': 2}
      ]
    },
    {
      'headingName': 'thirdHeader',    
      'feeBag': [
        {'name': 3}
      ]
    }
  ];
  
  angular.forEach($scope.fees, function(value, key) {
    angular.forEach(value.feeBag, function(value2, key2) {
    	angular.forEach($scope.otherFees, function(value3, key3){
      	if (value.feeBag[key2].name === value3.name) {
          value.feeBag[key2].text =  value3.text;
          value.feeBag[key2].amount = value3.amount;

          return value.feeBag[key2];            
        } else {
          // remove the ones that dont belong 
          // value.feeBag.splice(key, 1);
        }
      })
    });
  });
}]);