Skip to content Skip to sidebar Skip to footer

Populating Nested Array With Checkbox Inputs In Angular App

In my Angular app, I have the following list of checkboxes, generated within a nested ng-repeat:
it.

If you have questions, don't hesitate to ask.

<divng-repeat="organization in boundaryPartners"><divng-repeat="partner in organization.partners"><label><inputtype="checkbox"value="partner.id"ng-model="partner.selected"ng-change="changeValue(partner, organization, $parent.$index)"/>
            {{partner.name}}
        </label></div><hr/></div>

$scope.participatingPartners = []
var idsArray = [];

$scope.changeValue = function(partner, organization, index){
   if(partner.selected)
      addPartner(partner, organization, index);
   else
      removePartner(partner, organization, index);
};

var addPartner= function(partner, organization, index){
    prepareArrayToAdd(organization, index);
    if(!existInList(index, partner)){
        $scope.participatingPartners[index].partners.push(partner);
    }
};

var prepareArrayToAdd = function(organization, index){
    if(!$scope.participatingPartners[index])
        $scope.participatingPartners[index] = { id: organization.id, name: organization.name, partners: [] };
};

var removePartner= function(partner, organization, index){
    idsArray = getIdsArray(index);
    var indexToRemove = idsArray.indexOf(partner.id);
    if(indexToRemove == -1)
       return;

    $scope.participatingPartners[index].partners.splice(indexToRemove, 1);
};

var existInList = function(index, partner){
    idsArray = getIdsArray(index);
    return idsArray.indexOf(partner.id) != -1;
};

var getIdsArray = function(index){
    return$scope.participatingPartners[index].partners.map(function(partner){ return partner.id });
};

JSFIddle link.

Hope it helps!

Post a Comment for "Populating Nested Array With Checkbox Inputs In Angular App"