我想知道是否有可能在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列的主表达式。
有没有人有办法解决这个限制?
答案 0 :(得分:1)
我认为这实际上是不可能的。应用过滤后,任何一次限制值都不会发生变化。
您只应将过滤后的结果传递给ng-repeat
。表现| limitTo
完成所有技巧。你应该把它放到你控制器里面的一个方法 - 我认为你的错误来自那里的: or-operator
。