javascript - limitTo 过滤前查询过滤的 ng-repeat 数据的长度

标签 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>

要清楚,如果有 100 个项目来自 data | filter: queryitemsPerPage = 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/

相关文章:

javascript - 从 Flash 处理窗口 onclose 函数

javascript - ajax 调用后重新加载脚本

angularjs - orderBy 在 ng-repeat 中不区分大小写

AngularJS 1.2 - ngAnimate 不工作

javascript - 将数据从 Angular 形式传递到另一个 Controller

javascript - javascript中的方法链

javascript - 在 GridFS 中显示图像

javascript - AngularJS 范围不绑定(bind) ng-repeat 中的数据

javascript - 使用 jQuery .click 关闭 slider

javascript - AngularJS 表格过滤器