【发布时间】:2015-06-08 20:17:09
【问题描述】:
我有一组对象,我使用ng-repeat 在我的 Angular 应用程序中显示这些对象。我正在使用filter 和搜索输入的值过滤掉项目。它按预期工作。但是,我有一个“全选”/“取消全选”选项,我只想选择列表中的 可见 项(符合当前搜索条件的项)。
如果不在我的控制器中执行相同的逻辑(即在我的每个对象上使用indexOf 的搜索值),我如何知道哪些项目当前被ng-repeat/filter 过滤掉了?
我的看法:
<input type="text" ng-model="searchValue">
<input type="checkbox" ng-model="checkAll" ng-change="toggleAll()">
<tr ng-repeat="item in items | filter:searchValue">
<td>{{item.id}}</td>
<td>{{item.name}}</td>
</tr>
我的控制器中的一个函数:
$scope.toggleAll() {
for(var i in $scope.items){
// how can I tell if this item is filtered out in the view?
}
}
为了简单起见,我在这里大大简化了我的代码示例,因为这个问题不需要更多细节。有没有办法做我在想的事情,还是我需要再次执行“搜索”?
【问题讨论】:
-
查看@azium 对我的回答的评论。你可能想使用angular.forEach
-
当然,我只是把它扔在那里作为一个简单的例子!谢谢。
标签: javascript html angularjs