2014-01-21 2 views
2

ng-repeat를 사용하여 entire 목록을 만들고 필터를 사용합니다. 당신이 필터를 책임을 "필터"를 입력 목록을 아시는 바와 같이 Angularjs는 ng-repeat에서 반환 된 필터의 길이를 얻습니다.

는 길이

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

pos [Angular.js. 커스텀 필터를 만족시키는 ng-repeat 반복 계산 방법] (http://stackoverflow.com/questions/19664691/angular-js-how-to-count-ng-repeat-iterations-which-satisfy-the-custom- 필터) – Stewie

답변

4

그것은 조금 까다 롭습니다, 사용 ng-init :

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

예 : http://jsfiddle.net/KJ3Nx/

4

같은 항목의 수를 반환받을 것이 가능하고,이 객체가 동일한 구조를 가지고 목록을 필터링 반환 . 그렇지 않으면 Exceptions (일명 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; 
    }; 
}); 
+0

이 필터는 어떻게 작동합니까? – ttmt

0

나는 다음과 같은 코드가 당신을 위해 작동합니다 가정 :

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

관련 문제