猿问

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

如何显示过滤后的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还更改当前显示的人员的值。但这并没有发生。它总是显示数据中的总人数,而不是过滤的数据-如何获得过滤数据的计数?


ABOUTYOU
浏览 566回答 3
3回答

慕慕森

为了完整起见,除了以前的答案(执行控制器内可见人员的计算)之外,还可以在HTML模板中执行该计算,如下例所示。假设你的名单data变量,然后使用query模型中,下面的代码将适用于您:<p>Number&nbsp;of&nbsp;visible&nbsp;people:&nbsp;{{(data|filter:query).length}}</p><p>Total&nbsp;number&nbsp;of&nbsp;people:&nbsp;{{data.length}}</p>{{data.length}}-印刷总人数{{(data|filter:query).length}}-印刷品过滤人数注如果要使用筛选过的数据,则此解决方案工作正常。只有一次在一页纸上。但是,如果您不止一次使用过滤过的数据,例如显示项和显示筛选列表的长度,我建议使用别名表达式(下文介绍)为AngularJS1.3+或建议的解决方案@Wumms适用于1.3之前的AngularJS版本。角1.3的新特征AngularJS创建者也注意到了这个问题和版本1.3(Beta 17)他们添加了“别名”表达式,它将在应用过滤器之后存储中继器的中间结果。<div&nbsp;ng-repeat="person&nbsp;in&nbsp;data&nbsp;|&nbsp;filter:query&nbsp;as&nbsp;results"> &nbsp;&nbsp;&nbsp;&nbsp;<!--&nbsp;template&nbsp;...&nbsp;--></div><p>Number&nbsp;of&nbsp;visible&nbsp;people:&nbsp;{{results.length}}</p>这个别名表达式将防止多个筛选器执行问题。我希望这会有所帮助。

忽然笑

如果你有<div&nbsp;ng-repeat="person&nbsp;in&nbsp;data&nbsp;|&nbsp;filter:&nbsp;query"></div>滤波数据长度<div>{{&nbsp;(data&nbsp;|&nbsp;filter:&nbsp;query).length&nbsp;}}</div>
随时随地看视频慕课网APP
我要回答