aml*_*amm 12 html javascript angularjs
我有一个对象数组,我正在使用我的Angular应用程序中显示ng-repeat
.我正在过滤掉使用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>
Run Code Online (Sandbox Code Playgroud)
我的控制器中的一个功能:
$scope.toggleAll() {
for(var i in $scope.items){
// how can I tell if this item is filtered out in the view?
}
}
Run Code Online (Sandbox Code Playgroud)
为简单起见,我在这里大大简化了我的代码示例,因为这个问题不需要更多细节.有没有办法做我正在思考或做的事情我需要再次执行"搜索"?
azi*_*ium 18
您可以将过滤后的数组绑定到视图中的另一个范围变量,然后在控制器中访问该变量.
视图:
<tr ng-repeat="item in filteredItems = (items | filter:searchValue)">
...
</tr>
Run Code Online (Sandbox Code Playgroud)
控制器:
$scope.toggleAll = function () {
angular.forEach($scope.filteredItems, function (item) {
// do stuff
})
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2351 次 |
最近记录: |