2016-03-23 18 views
4

Şu anda, ong -eğer sayaç elle

--> 1 
--> 2 
--> 5 
--> 9 
... 
çıktısını gibi sık kullanılan şu döngü

<div ng-repeat= 
    <li ng-if= 
     --> {{$index}} </br> 

ihtiyacımı yakışmıyor $index kullanma var

ne keşke yazdırmaktır

--> 1 
--> 2 
--> 3 
--> 4 
... 

manuel olarak nasıl sayacı izlemek tutabilir ?

cevap

3

ng-repeat ve ng-if kullanmak yerine bir süzgeçle ng-repeat kullanın ve ardından $ index istediğiniz değerleri gösterecektir.

HTML:

<div ng-app="app"> 
    <div ng-controller="ctrl as vm"> 
    <span>Your Approach:</span> 
    <div ng-repeat="item in vm.items"> 
     <div ng-if="item > 5"> 
     <span>Item: {{item}}. $index: {{$index}}</span> 
     </div> 
    </div> 
    <br/> 
    <span>Filter Approach:</span> 
    <div ng-repeat="item in vm.items | filter:vm.greaterThanFiveFilter"> 
     <span>Item: {{item}}. $index: {{$index}}</span> 
    </div> 
    </div> 
</div> 

JS:

angular.module('app', []). 
controller('ctrl', function() { 
    this.items = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 
    this.greaterThanFiveFilter = function(item){ return item > 5}; 
}); 

ÇIKIŞ:

Your Approach: 
Item: 6. $index: 5 
Item: 7. $index: 6 
Item: 8. $index: 7 
Item: 9. $index: 8 

Filter Approach: 
Item: 6. $index: 0 
Item: 7. $index: 1 
Item: 8. $index: 2 
Item: 9. $index: 3 

JSFIDDLE.