Angularjs过滤并选中所有复选框

Une*_*ted 8 angularjs

我有一系列我正在展示的项目

<tr ng-repeat="i in items | filter:search_text" ...>
Run Code Online (Sandbox Code Playgroud)

这些项目有一个表示"已选择"的复选框.当我需要执行诸如调用将删除所有选定项目的删除功能之类的操作时,如何知道过滤器显示哪些项目?

已选择(在复选框中选中)然后通过过滤隐藏的项目仍被选中.我需要一种方法来了解此刻屏幕上的哪个项目.

Ben*_*esh 12

您可以使用$ filter来调用控制器中的过滤器.

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;
      });
   };
});
Run Code Online (Sandbox Code Playgroud)

然后selectAllFilteredItems(),您可以拨打ng-click或其他任何需要的地方.

  • 我的答案完全一样=)这里有一个简单的小提琴http://jsfiddle.net/bmleite/syYxa/ (2认同)