在ng-repeat中一次绑定后的AngularJS过滤器

时间:2016-07-28 12:19:05

标签: javascript angularjs ng-repeat

我想知道是否有可能在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列的主表达式。

有没有人有办法解决这个限制?

1 个答案:

答案 0 :(得分:1)

我认为这实际上是不可能的。应用过滤后,任何一次限制值都不会发生变化。

您只应将过滤后的结果传递给ng-repeat。表现| limitTo完成所有技巧。你应该把它放到你控制器里面的一个方法 - 我认为你的错误来自那里的: or-operator