Angular 使用多个过滤器获取行数

Posted

技术标签:

【中文标题】Angular 使用多个过滤器获取行数【英文标题】:Angular get row count with several filters 【发布时间】:2016-09-23 00:21:59 【问题描述】:

我在ng-repeat 和多个filter 之后计数row 时遇到问题,我想在使用多个过滤器过滤表后计算当前行数,例如:

<tr ng-repeat="person in data | filter:query | filter : name | filter m_resource: resourceFilter | filter : m_id : idFilter">
</tr>

m_resource, m_iddata 中的字段,由于badidnet 错误,我无法使用as filter,还有其他方法吗?

【问题讨论】:

不清楚是什么问题。你能澄清一下吗? 我想在应用 3 个过滤器后计算行数。 $last 有参考吗? 已提出问题。看看this answer @RomainDeSaJardim 我在问题中写了这个,不可能有多个过滤器。 【参考方案1】:

我发现即使你添加 limitTo 过滤器也能工作

<tr ng-repeat="person in filtered = (data | filter:query | filter : name | filter m_resource: resourceFilter | filter : m_id : idFilter) | limitTo: 5">

那你只需要做

filtered.length

Fiddle sample

【讨论】:

尝试并发布结果。 完美!!谢谢!!【参考方案2】:

你应该可以做这样的事情:

ng-repeat="person in filtered = ( data | filter:query | filter : name | filter m_resource: resourceFilter | filter : m_id : idFilter )"

然后使用 filtered.length 作为行数。

【讨论】:

尝试发布结果。 有道理,因为 limitTo 切片列表的一部分。【参考方案3】:
<table>
    <tr ng-repeat="person in rows = (data | filter:query | filter : name | filter m_resource: resourceFilter | filter : m_id : idFilter)">
    </tr>
</table>
<span>There are  rows.length  rows in the table</span>

同样的问题:How can I obtain the result array of an angular "| filter" expression in a variable?

【讨论】:

以上是关于Angular 使用多个过滤器获取行数的主要内容,如果未能解决你的问题,请参考以下文章

Jqgrid:获取应用本地过滤器后的行数

优化 PostgreSql 查询以获取找到的记录总数和基于多个 group by 的分页所需的有限行数

Angular Material - 通过多个过滤器和多个过滤器值同时过滤表

获取专门的行数

Angular.js ng-repeat 按具有多个值之一(或值)的属性过滤

多个反应过滤器和更新选择输入的问题 - 奇怪的行为