StackOverflow地址
http://stackoverflow.com/questions/15316363/how-to-display-length-of-filtered-ng-repeat-data
问题描述
楼主有一个数组,包含了许多对象(JSON格式)。以下假设为数组的内容:12345678910var data = [ { "name": "Jim", "age" : 25 }, { "name": "Jerry", "age": 27 }];
接下来通过以下方式展示:12<div ng-repeat="person in data | filter: query"></div>
在这里,通过一个输入框执行查询来筛选显示的内容。
楼主需要在另一处显示当前人员的数量,例如:Showing Persons
。
楼主想要达到的目的是当一个用户搜索人员时,数据根据搜索条件显示,显示当前人员总数的Showing…persons一并变化。但是现在不行。这里总是显示所有人员的总数而不是被筛选后的数值。那么问题来了,如何才能获取被筛选数据的总数呢?
最佳解答
针对Angular1.3+
使用alias表达式(文档:Angular 1.3.0,往下翻找到Arguments章节):12<div ng-repeat="person in data | filter:query as filtered"></div>
针对Angular1.3之前版本
将结果赋值给一个新的变量,(例如:filtered
)然后再用。12<div ng-repeat="person in filtered = (data | filter: query)"></div>
显示结果的个数:1Showing {{filtered.length}} Persons
查看类似的例子。