为了账号安全,请及时绑定邮箱和手机立即绑定

如何显示过滤后的ng重复数据的长度

如何显示过滤后的ng重复数据的长度

ABOUTYOU 2019-07-02 15:34:56
如何显示过滤后的ng重复数据的长度我有一个数据数组,它包含许多对象(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还更改当前显示的人员的值。但这并没有发生。它总是显示数据中的总人数,而不是过滤的数据-如何获得过滤数据的计数?
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

为了完整起见,除了以前的答案(执行控制器内可见人员的计算)之外,还可以在HTML模板中执行该计算,如下例所示。

假设你的名单data变量,然后使用query模型中,下面的代码将适用于您:

<p>Number of visible people: {{(data|filter:query).length}}</p><p>Total number of people: {{data.length}}</p>
  • {{data.length}}

    -印刷总人数
  • {{(data|filter:query).length}}

    -印刷品过滤人数

如果要使用筛选过的数据,则此解决方案工作正常。只有一次在一页纸上。但是,如果您不止一次使用过滤过的数据,例如显示项和显示筛选列表的长度,我建议使用别名表达式(下文介绍)为AngularJS1.3+或建议的解决方案@Wumms适用于1.3之前的AngularJS版本。

角1.3的新特征

AngularJS创建者也注意到了这个问题和版本1.3(Beta 17)他们添加了“别名”表达式,它将在应用过滤器之后存储中继器的中间结果。

<div ng-repeat="person in data | filter:query as results">
    <!-- template ... --></div><p>Number of visible people: {{results.length}}</p>

这个别名表达式将防止多个筛选器执行问题。

我希望这会有所帮助。


查看完整回答
反对 回复 2019-07-02
?
忽然笑

TA贡献1806条经验 获得超5个赞

如果你有

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

滤波数据长度

<div>{{ (data | filter: query).length }}</div>


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 556 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信