列表中的项目数过滤 AngularJS

Posted

技术标签:

【中文标题】列表中的项目数过滤 AngularJS【英文标题】:Number of items in a list filtered AngularJS 【发布时间】:2013-01-29 17:52:31 【问题描述】:

如何获得 AngularJS 中过滤器预测返回的项目的长度/数量?

【问题讨论】:

How to display length of filtered ng-repeat data的可能重复 前面的问题怎么可能是重复的?这是在您引用的问题的一个月前发布的。 【参考方案1】:

感谢 Pawel Kozlowski,我设法在 AngularJS Google Group 上找到了一个很好的答案。

ng-repeat="item in filtered = (items | filter:filterExpr)"

将即时创建filtered 列表,您可以在当前范围内的任何其他位置使用filtered.length 来显示计数。

【讨论】:

能否请您添加参考?那太好了。 @htellez - 抱歉,我不能。但是,帖子中没有任何遗漏,不在此答案中。 有没有办法将“过滤”数组设置为在搜索开始之前返回 0? 谢谢@Slomojo,我想知道如何将这个过滤后的变量传递给父作用域。 (我在指令中做过滤器) @Rocky 看到 EpokK 的答案,使用 javascript 端来做到这一点。在视图模板中放置更多逻辑是不明智的。【参考方案2】:

解决方案

试试这个:

HTML

<span ng-bind="nb"></span>

Javascript

$scope.nb = $filter('filter')(items, filterExpr).length;

文档

在 HTML 模板绑定中

 filter_expression | filter : array : expression : comparator

在 JavaScript 中

$filter('filter')(array, expression, comparator)

【讨论】:

【参考方案3】:

我还必须显示过滤数组的长度,这个对我有用:

 (items | filter:filterExpr).length 

【讨论】:

【参考方案4】:

事实上,这将适用于显示过滤器(orderBylimitTo

item in list = ( item_array|filter:some_str) | orderBy: pref | limitTo: nItemToDisplay

如果您需要一次显示 5 个项目,您仍然可以使用 list.length。用于分页或数据表中。

【讨论】:

以上是关于列表中的项目数过滤 AngularJS的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个项目列表中过滤一个项目列表?

如何过滤 rxdart 中的 observable 列表

Django:ManyToMany过滤器匹配列表中的所有项目

NetSuite Advanced PDF - 使用记录中的多选字段过滤项目表列表

Listview自定义过滤器在过滤列表中单击错误的项目

列表视图使用 Flutter 中的属性过滤掉最后一行数据