javascript - 如何显示过滤后的 ng-repeat 数据的长度

标签 javascript angularjs

我有一个包含许多对象(JSON 格式)的数据数组。可以假定以下内容为该数组的内容:

var data = [
  {
    "name": "Jim",
    "age" : 25
  },
  {
    "name": "Jerry",
    "age": 27
  }
];

现在,我将这些详细信息显示为:

<div ng-repeat="person in data | filter: query">
</div

在这里,查询被建模为一个输入字段,用户可以在其中限制显示的数据。

现在,我有另一个位置显示当前显示的人数/人数,即 Showing {{data.length}} Persons

我想要做的是当用户搜索一个人并根据查询过滤显示的数据时, Showing...persons 也会改变当前显示的人的值.但它没有发生。它始终显示数据中的总人数而不是过滤后的人数 - 我如何获得过滤数据的计数?

最佳答案

对于 Angular 1.3+(感谢 @Tom)

使用别名表达式(文档:Angular 1.3.0: ngRepeat,向下滚动到参数部分):

<div ng-repeat="person in data | filter:query as filtered">
</div>

适用于 1.3 之前的 Angular

将结果分配给一个新变量(例如filtered)并访问它:

<div ng-repeat="person in filtered = (data | filter: query)">
</div>

显示结果数:

Showing {{filtered.length}} Persons

拨弄一个 similar example .学分转到 Pawel Kozlowski

关于javascript - 如何显示过滤后的 ng-repeat 数据的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15316363/

相关文章:

angularjs - Bootstrap 模态的简单 Angular 指令

javascript - Jquery 在特定父元素后插入行

javascript - 如何使用 DataTables.net 解决破坏容器外部表的长列值问题?

javascript - 用于 jasmine/karma 测试的 angularjs 中的全局模拟对象

javascript - AngularJS( ionic 框架)-更改 Controller 内的状态似乎不起作用

angularjs - 创建富文本编辑器 AngularJS

javascript - AngularJS 或 Backbone 适合初学者

javascript - 具有在运行时更改的参数的超时函数

javascript - 如何在javascript中从数据库表中访问这样的数据?

javascript - 在同一个 javascript 函数中创建多个跨度