我有一系列要展示的项目
<tr ng-repeat="i in items | filter:search_text" ...>
这些项目有一个复选框,表示“选中”或未选中。
当我需要执行诸如调用将删除所有选定项目的删除函数之类的操作时,如何知道过滤器显示了哪些项目?
已选择(在复选框中选中)然后通过过滤隐藏的项目仍被选中。我需要一种方法来知道当前屏幕上的项目。
最佳答案
您可以使用 $filter 在 Controller 中调用过滤器。
app.controller('MyCtrl', function($scope, $filter){
var filter = $filter('filter');
$scope.items = [/* your items here */]
$scope.selectAllFilteredItems = function (){
var filtered = filter($scope.items, $scope.search_text);
angular.forEach(filtered, function(item) {
item.selected = true;
});
};
});
然后您会调用
selectAllFilteredItems()
在 ng-click 或您需要的任何其他地方。
关于Angularjs过滤并选择所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091271/