Angularjs获得ng-repeat中返回过滤器的长度

时间:2014-01-21 09:45:55

标签: angularjs filter angularjs-filter

我正在使用ng-repeat创建条目列表并使用过滤器。

是否可以获得返回的条目数,例如长度

    data-ng-repeat="entry in entries | filter: { country_code : countryCode }"

3 个答案:

答案 0 :(得分:4)

如您所知 filter 负责“过滤”输入列表,并返回过滤列表,其中对象具有相同的结构。否则,您将获得重新导入的摘要周期,从而导致例外(也称为> 10个周期)。

第一路

过滤后获取长度:

<pre>{{(entries| myfilter:types).length }}</pre>

参见 Example

第二路

使用自定义过滤器并从那里获取长度。

iApp.filter('myfilter', function() {

   return function( entries) {
    var filtered = [];

    angular.forEach(entries, function(entry) {
          filtered.push(entry);
    });

    // here fetch list length

    return filtered;
  };
});

答案 1 :(得分:4)

这有点棘手,使用ng-init

ng-init="filter_len = (entries | filter: { country_code : countryCode }).length" 

示例:http://jsfiddle.net/KJ3Nx/

答案 2 :(得分:0)

我认为以下代码适合您:

<p>Filtered number: {{(entries|filter:{country_code:countryCode}).length}}</p> <p>Total number: {{entries.length}}</p>