2016-02-12 40 views
0

當我檢查一個單一項目的複選框時,我得到綁定在這個項目上的數據並將其拽到數組中。使用selectAll我沒有在數組中獲取這些數據。angular sellect全部數據綁定

檢查項目的獲取對象的角度代碼。

$scope.selectedOrganisations = []; 
$scope.GetSelectedOrganisations = function (checked, organisation) 
{ 

    if(checked) 
    { 
     $scope.selectedOrganisations.push(organisation); 
     $scope.match.organisations.push(organisation.id); 
    } else { 
     // remove item 
     for(var i=0 ; i < $scope.selectedOrganisations.length; i++) { 
      if($scope.selectedOrganisations[i].id == organisation.id){ 
       $scope.selectedOrganisations.splice(i,1); 
       $scope.match.organisations.splice(i,1); 
      } 
     } 
    } 
    $scope.totalSelectedOrganisations = $scope.selectedOrganisations.length; 
} 
$scope.GetSelectedOrganisations(); 

這是HTML

//This is selectAll snippet outside the repeater 
<div class="input-field__checkbox--reverse"> 
    <input class="input-field__checkbox--input" type="checkbox" id="input-field__checkbox" ng-model="checkedAll"> 
     <label class="input-field__checkbox--label input-field__checkbox--label--border" for="input-field__checkbox<% rowNumber %>"></label> 
      <span class="selectall">Select all</span> 
    </div> 
</div> 

// HTML Repeater snippet with checkboxes 
<div class="list-view__body__row" ng-cloack ng-repeat="(key, organisation) in organisations.results | filter:{ labels : labelName }:true | orderBy:sortType:sortReverse " ng-init="orgIndex = $index" id="<% rowNumber = labelIndex + organisation.id %>"> 
    <div class="list-view__body__cell"> 
    <div class="row"> 
     <div class="col-md-1"> 
     <div class="input-field__checkbox"> 
      <input class="input-field__checkbox--input" type="checkbox" id="input-field__checkbox<% rowNumber %>" ng-change="GetSelectedOrganisations(checked, organisation)" ng-model="checked" ng-checked="checkedAll"> 
      <label class="input-field__checkbox--label input-field__checkbox--label--border" for="input-field__checkbox<% rowNumber %>"></label> 
     </div> 
     </div> 
     <div class="col-md-3"><a href="javascript:void(0)" class="list__organisationsGuide__name"> <% organisation.name %> </a></div> 
     <div class="col-md-3"> 
     <ul class="list__organisationsGuide__labels"> 
      <li ng-repeat="label in organisation.labels | orderBy"> 
      <% label %> 
      </li> 
     </ul> 
     </div> 
     <div class="col-md-3"><% organisation.city %></div> 
     <div class="col-md-1"> 
     <div> 
      <span ng-repeat="(key, n) in organisation.rating.stars" class="mdi mdi-star"></span> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 

我如何獲得與全選,所有選定項的ID在數組$ scope.selectedOrganisations推;

回答

0

取代變量checkAll添加一個方法checkAll,它遍歷所有記錄並根據checkAll輸入字段的值設置/取消設置它們。 喜歡的東西:

$scope.list = ... 
$scope.inputFieldCheckAll = ... 

$scope.checkAll = function() { 
    for (var i = 0; i < $scope.list.length; i++) { 
     $scope.list[i].check = $scope.inputFieldCheckAll; 
    } 
} 

,並在檢查:

<input type="checkbox" ng-model="inputFieldCheckAll" ng-change="checkAll()"></input>