Angularjs过滤并选择所有复选框

标签 angularjs

我有一系列要展示的项目

<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/

相关文章:

javascript - Angular 尝试读取服务中的属性

angularjs - Angular 范围变量和普通 Controller 变量

javascript - JSON 初始化服务中的数据

javascript - 在 Angular JS Controller 中遍历复杂的 JSON 数组并显示特定值

javascript - Angular获取语法错误: Token ':' is an unexpected token while accessing URLs from JSON

javascript - AngularJS 动态过滤未更新

javascript - 为什么 Angular-xeditable 在第一次运行时不突出显示当前值?

angularjs - ng-repeat 中的 $index 删除后未更新

javascript - 通过 Protractor js向右移动Google maps map

javascript - angularjs 间隔应用 rootscope 中的更改