单击顶部复选框时,如何选中网格上的所有复选框.此时它仅单击当前页面复选框.如果您可以在Plunk上模拟您的解决方案,则非常感谢.谢谢.
$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; } }); });
我相信你现在已经想到了这一点,但由于这个问题没有得到解决,我正在寻找一种方法来做这件事我已经更新了你的plunker以供将来参考,如果有人偶然发现这个问题.
http://plnkr.co/edit/PjTlyX?p=preview
有两件事需要考虑,您是否希望检查所有复选框而不管过滤或检查是否需要以过滤器为中心.
如果要忽略对数据源的过滤,请将$scope变量设置为未过滤的列表
var data = [{id: 1,name: "Moroni",age: 50,money: -10},{id: 2,name: "Tiancum",age: 43,money: 120}] $scope.data = data;
或者如果您希望仅选择已过滤的复选框,则将orderedData设置为$scope.tableParams方法中的另一个$scope变量
var orderedData = params.sorting() ? $filter('orderBy')(data,params.orderBy()) : data; orderedData = params.filter() ? $filter('filter')(orderedData,params.filter()) : orderedData; $scope.orderedData = orderedData;
然后,您可以通过简单地将$scope.users更改为下面的prefer $scope变量来自由选择您喜欢的复选框
// watch for check all checkBox $scope.$watch('checkBoxes.checked',function(item) { if (angular.isDefined(item.id)) { $scope.checkBoxes.items[item.id] = value; } }); });