根据对 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>
要清楚,如果有 100 个项目来自 data | filter: query
和 itemsPerPage = 10
,然后在我的例子中,我希望 filtered.length
为 100,而不是我从中得到的 10:
<div ng-repeat="person in filtered = (data | filter: query) | limitTo: itemsPerPage">
</div>
有没有办法从链中较早的过滤中获取过滤结果的长度,同时仍然在链中应用更多可能影响过滤结果长度的过滤器?
最佳答案
我需要同样的东西,很惊讶没有人回答这个问题......但是你的最后一次尝试让我完成了 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 后可见的列表。
关于javascript - limitTo 过滤前查询过滤的 ng-repeat 数据的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31440153/