8

表示しているアイテムの配列があります

<tr ng-repeat="i in items | filter:search_text" ...>

アイテムには、「選択済み」かどうかを示すチェックボックスがあります。選択したすべてのアイテムを削除する削除関数を呼び出すなどの操作を行う必要がある場合、フィルターによって表示されるアイテムをどのように知ることができますか?

選択 (チェックボックスでチェック) され、フィルタリングによって非表示にされた項目は、引き続き選択されます。現在どのアイテムが画面に表示されているかを知る方法が必要です。

4

2 に答える 2

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;
      });
   };
});

selectAllFilteredItems()次に、ng-click または必要な場所で呼び出します。

于 2013-02-26T14:26:16.343 に答える