2016-04-11 16 views
0

Her satırda onay kutusunu kullanarak seçim yapmaya çalıştığım bir ng-tablom var.ng-table: her satırda onay kutusu seçimi

angular.module("umbraco").controller("ListController", 
function ($scope, $http, $routeParams) { 
$scope.selectedIds = []; 
    $scope.toggleSelection = function (val) { 
      var idx = $scope.selectedIds.indexOf(val); 
      if (idx > -1) { 
       $scope.selectedIds.splice(idx, 1); 
      } else { 
       $scope.selectedIds.push(val); 
      } 
     }; 

     $scope.isRowSelected = function (id) { 
      return $scope.selectedIds.indexOf(id) >= 0; 
     }; 
     $scope.isAnythingSelected = function() { 
      return $scope.selectedIds.length > 0; 
     }; 
}); 

i bireysel satırları seçmek çalışıyorum ancak herhangi bir satır tıklamada tüm satırları seçerek yukarıdaki kodu:

<table id="List" class=" table table-bordered table-striped" 
    ng-table="tableParams" show-filter="true" template-pagination="custom/pager"> 

<tbody> 
     <tr ng-repeat="item in $data" > 
      <td style="width: 35px"> 
    <input type="checkbox" name="selectedIds[]" value="{{item.id}}" ng-checked="isRowSelected(item.id)" ng-click="toggleSelection(item.id)" /> 
     </td> 
<td data-title="'Name'" sortable="'Name'" filter="{ 'Name': 'text' }" > 
     {{ item.Name}} </a> 

    </td> 
    <td data-title="'Email'" sortable="'Email'" > 
     {{ item.Email}} 
    </td> 
    <td data-title="'Phone Number'" sortable="'PhoneNumber'"> 
     {{ item.PhoneNumber}} 
      </td> 
    </tr> 

bu

denetleyici olduğunu. Bu konuda herhangi bir öneriniz lütfen?

+0

bir jsfiddle olarak yapabilir miyim:

<input type="checkbox" ng-checked="item.isRowSelected" ng-click="toggleSelection(item)" /> 

ve denetleyicisi örnek ? –

cevap

2

Sen gücünü kullanmayan açısal doğru :) Sen görünümünde böyle bir şey denemelisiniz:

$scope.toggleSelection = function(item){ 
    item.isRowSelected = !item.isRowSelected; 
} 


$scope.isAnythingSelected = function() { 
    for(var i = 0; i < $scope.data.length; i++){ 
     if($scope.data[i].isRowSelected === true){ 
      return true; 
     } 
    } 

    return false; 
};