多个过滤器之间的AngularJS ng-repeat别名表达式

时间:2017-09-05 08:43:54

标签: javascript angularjs angularjs-ng-repeat

根据Angular ngRepeat documentation,您只能在ngRepeat的末尾使用别名表达式:

  

请注意`作为[变量名]不是运算符,而是a   ngRepeat微语法的一部分,所以它只能在最后使用(和   不是作为操作符,在表达式中。)

在我的ng-repeat中,我需要根据属性过滤掉项目,然后使用limitTo过滤器进行分页。

如何在第二个过滤器之前获取已过滤项目的数量?

这不起作用:

item in c.items | filter: c.contextFilter as filteredItems | limitTo: c.pagination.pageSize : c.pagination.currentPage*c.pagination.pageSize

我还有其他方法可以获得filteredItems.length值吗?

1 个答案:

答案 0 :(得分:3)

我有同样的问题,我修复了它将过滤器表达式的第一部分的结果分配给一个新变量。在您的示例中:

item in filteredItems = (c.items | filter: c.contextFilter) | limitTo: c.pagination.pageSize : c.pagination.currentPage*c.pagination.pageSize

<div>{{filteredItems.length}}</div>

controllerAs语法的完整示例:

item in $ctrl.filteredItems = ($ctrl.items | filter: $ctrl.customFilter | orderBy: $ctrl.order) | limitTo: $ctrl.pagination.pageSize : $ctrl.pagination.currentPage*$ctrl.pagination.pageSize