limitTo filter

时间:2015-07-15 20:14:16

标签: javascript angularjs angularjs-ng-repeat

根据this question的接受答案,如果我想显示过滤的ng-repeat数据的长度,我会这样做:

<div ng-repeat="person in filtered = (data | filter: query)">
</div>

显示结果数量:

Showing {{filtered.length}} Persons

我的问题是,当我还使用limitTo过滤器时,如何使用该简单查询过滤器显示数据的长度:

<div ng-repeat="person in data | filter: query | limitTo: itemsPerPage">
</div>

要明确的是,如果data | filter: queryitemsPerPage = 10产生100个项目,那么就我而言,我希望filtered.length为100,而不是我做的10个:

<div ng-repeat="person in filtered = (data | filter: query) | limitTo: itemsPerPage">
</div>

有没有办法从链中的早期过滤中获取过滤结果的长度,同时仍然在链中应用更多过滤器,这可能会影响过滤结果的长度?

1 个答案:

答案 0 :(得分:0)

我需要同样的东西,但没有人回答我感到惊讶...但是您的上一次尝试使我成功了90%,它只需要一副额外的括号:

<div ng-repeat="person in (filtered = (data | filter: query)) | limitTo: itemsPerPage">
</div>

要获得最终列表,我们可以使用别名:

<div ng-repeat="person in (filtered = (data | filter: query)) | limitTo: itemsPerPage as visibleItems">
</div>

filtered将具有完整的过滤列表,而visibleItems将仅具有在应用limitTo之后可见的列表。