你可以做到 的 2种方式 强> 。在 的 模板 强> 并在 的 调节器 强> 。在模板中,您可以将过滤后的数组设置为另一个变量,然后根据需要使用它。这是怎么做的:
<ul> <li data-ng-repeat="user in usersList = (users | gender:filterGender)" data-ng-bind="user.name"></li> </ul> .... <span>{{ usersList.length | number }}</span>
如果您需要示例,请参阅 AngularJs过滤了计数示例/演示
从AngularJS 1.3开始,您可以使用别名:
item in items | filter:x as results
在某个地方:
<span>Total {{results.length}} result(s).</span>
从 文档 :
你也可以提供 可选的别名表达式,然后存储中间件 应用滤波器后转发器的结果。通常 这用于在过滤器处于活动状态时呈现特殊消息 转发器,但过滤结果集为空。 例如:项目中的项目filter:x作为结果将存储 重复项目的片段作为结果,但仅在项目之后 已通过过滤器处理过。
你也可以提供 可选的别名表达式,然后存储中间件 应用滤波器后转发器的结果。通常 这用于在过滤器处于活动状态时呈现特殊消息 转发器,但过滤结果集为空。
例如:项目中的项目filter:x作为结果将存储 重复项目的片段作为结果,但仅在项目之后 已通过过滤器处理过。
注意,您可以通过对过滤器进行分组来存储多个级别的结果
all items: {{items.length}} filtered items: {{filteredItems.length}} limited and filtered items: {{limitedAndFilteredItems.length}} <div ng-repeat="item in limitedAndFilteredItems = (filteredItems = (items | filter:search) | limitTo:25)">...</div>
这是一个 演示小提琴
如果你有最简单的方法
<div ng-repeat="person in data | filter: query"></div>
过滤的数据长度
<div>{{ (data | filter: query).length }}</div>
这是工作的例子 请参阅Plunker
<body ng-controller="MainCtrl"> <input ng-model="search" type="text"> <br> Showing {{data.length}} Persons; <br> Filtered {{counted}} <ul> <li ng-repeat="person in data | filter:search"> {{person.name}} </li> </ul> </body> <script> var app = angular.module('angularjs-starter', []) app.controller('MainCtrl', function($scope, $filter) { $scope.data = [ { "name": "Jim", "age" : 21 }, { "name": "Jerry", "age": 26 }, { "name": "Alex", "age" : 25 }, { "name": "Max", "age": 22 } ]; $scope.counted = $scope.data.length; $scope.$watch("search", function(query){ $scope.counted = $filter("filter")($scope.data, query).length; }); });