2014-10-11 7 views
6

En iyi onay kutusunu tıklattığımda ızgaradaki tüm onay kutularını nasıl seçebilirim. Bu an, yalnızca geçerli sayfa onay kutularını tıklatır. Plunk üzerinde çözüm, çok takdir ediyoruz.Şimdiden teşekkürler. İşte ngTablo ile onay kutularının üzerindeki onay kutularını işaretlemiyor

link: Eğer bu anladım artık eminim Table with checkboxes

$scope.checkboxes = { 'checked': false, items: {} }; 

// watch for check all checkbox 
$scope.$watch('checkboxes.checked', function(value) { 
    angular.forEach($scope.users, function(item) { 
     if (angular.isDefined(item.id)) { 
      $scope.checkboxes.items[item.id] = value; 
     } 
    }); 
}); 

cevap

11

ama soru cevapsız bıraktı ve beri sadece bu ben güncelledik yapmak için bir yol arıyordu Bu soruya herhangi bir kimse rastlarsa, gelecekteki referans için plunker'ınızı.

http://plnkr.co/edit/PjTlyX?p=preview

Orada, dikkate alınması gereken 2 şey vardır filtre uygulamanın bakılmaksızın tüm onay kutularını kontrol etmek isteyen ya da kontrol filtresi merkezli olması gerekiyor mu yapmak.

veri kaynağı

var data = [{id: 1, name: "Moroni", age: 50, money: -10}, 
       {id: 2, name: "Tiancum", age: 43,money: 120}] 
$scope.data = data; 

üzerinde filtreleme görmezden istiyorsanız filtresiz listesine bir $ kapsamı değişkeni ayarlayın veya tercih ediyorsanız sadece başka $ kapsamına orderedData ayarlanmış filtrelenmiş olan onay kutularını seçin hiç yolu basitçe için $ scope.users değiştirerek tercih onay kutularını seçmek serbesttir

var orderedData = params.sorting() ? 
        $filter('orderBy')(data, params.orderBy()) : 
        data; 
      orderedData = params.filter() ? 
        $filter('filter')(orderedData, params.filter()) : 
        orderedData; 
      $scope.orderedData = orderedData; 

Sonra $ scope.tableParams yöntemi içinde değişken

altında $ kapsam değişkeni tercih
// watch for check all checkbox 
$scope.$watch('checkboxes.checked', function(value) { 
    angular.forEach($scope.users, function(item) { 
     if (angular.isDefined(item.id)) { 
      $scope.checkboxes.items[item.id] = value; 
     } 
    }); 
}); 
+0

Wow..Its gerçekten güzel.Çok fazla teşekkürler :) Aslına bakarsanız şu ana kadar hiçbir çözümüm olmadı.Teşekkürler :) – Sampath

+0

Harika! Tam olarak ihtiyacım olan şey. Teşekkür ederim. AngularJS 1.6.4 ve ngTable 1.0.0 için güncelledim: http://plnkr.co/edit/km1Sjv?p=preview –

1

Bu, resmi belgelerden yapmanın başka bir yoludur.

Codepen Demo here

explaination bakın

Sen

<script type="text/ng-template" id="headerCheckbox.html"> 
    <input type="checkbox" ng-model="demo.checkboxes.checked" class="select-all" value="" /> 
</script> 

gibi başlık şablon oluşturmak ve

<td header="'headerCheckbox.html'"><input type="checkbox" ng-model="demo.checkboxes.items[row.id]" /></td> 

gibi tablodaki bir sütun ekleyin ve model demosunu izleyebilirsiniz .checkbox.hp değişiklikleri için

$scope.$watch(function() { 
     return self.checkboxes.checked; 
    }, function(value) { 
     angular.forEach(simpleList, function(item) { 
     self.checkboxes.items[item.id] = value; 
    }); 
});