列表中的项目数过滤 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】:事实上,这将适用于显示过滤器(orderBy
,limitTo
)
item in list = ( item_array|filter:some_str) | orderBy: pref | limitTo: nItemToDisplay
如果您需要一次显示 5 个项目,您仍然可以使用 list.length。用于分页或数据表中。
【讨论】:
以上是关于列表中的项目数过滤 AngularJS的主要内容,如果未能解决你的问题,请参考以下文章
Django:ManyToMany过滤器匹配列表中的所有项目