我想知道是否可以一次性在ng-repeat指令中绑定一个变量,然后对该变量进行过滤。
我的代码现在很不幸地执行了变量AFTER过滤后的一次性绑定,尽管我需要在执行过滤之前完成绑定。
这是我的代码:
<div flex="20" ng-repeat="item in ::vm.items | filter: vm.itemSearch
| limitTo: vm.query.limit : (vm.query.page -1) * vm.query.limit">
</div>
请记住,vm.items是一个可能在一边容纳20,000个元素的数组,因此需要一次性绑定。
过滤器用于搜索和分页。我想做的事情如下:
<div flex="20" ng-repeat="item in (::vm.items) | filter: vm.itemSearch
| limitTo: vm.query.limit : (vm.query.page -1) * vm.query.limit">
</div>
但是,由于以下错误,这不是有效的AngularJS语法:
语法错误:标记':'不是表达式第2列的主要表达式。
有谁能解决这个限制?
最佳答案
我认为这实际上是不可能的。应用过滤后,任何一个时间限制值都不会更改。
您只应将过滤后的结果传递给ng-repeat
。从性能上讲,| limitTo
可以解决所有问题。您应该将其放在控制器内部的方法中-我认为您的错误来自此处的: or-operator
。