2013-03-11 9 views
5

Ich benutze AngularJS und ich habe eine Anforderung, in der ich ein Element nach einen bestimmten Index wiederholen muss. Also, sagen wir mal mein Code:AngularJS: Wiederholen Sie nach einem bestimmten Index

<label ng-repeat="stones in rocks"> 
    <a href="#">Rock {{$index}}</a> 
    <i class="icon-trash"></i> 
</label> 

Nun, was ich möchte, ist, dass <i class="icon-trash"></i> nur wiederholt werden nach Index 3. Das aus dem vierten Stein ab, ich möchte den Papierkorb sehen. Wie erreiche ich das?

+0

ng-show funktioniert gut, aber wenn Sie nicht wollen, die ' 'Element im DOM, verwenden Sie [ng-switch] (http://docs.angularjs.org/api/ng.directive:ngSwitch). –

+0

Ich bin neugierig, ob es einen Grund gibt, ng-switch anstelle von [ng-if] zu verwenden (http://docs.angularjs.org/api/ng.directive:ngIf) (vielleicht ist Ihr Kommentar auf eine ältere Version datiert)). – BradGreens

Antwort

11

ng-show können einen Ausdruck nehmen:

<label ng-repeat="stones in rocks"> 
    <a href="#">Rock {{$index}}</a> 
    <i class="icon-trash" ng-show="$index > 2"></i><!--$index is 0-based--> 
</label> 

Ab Version 1.1.5 Sie die unerwünschten Elemente aus dem DOM mit

<i class="icon-trash" ng-if="$index > 2"></i> 
+2

Ab Version [1.1.5] (https://github.com/angular/angular.js/blob/master/CHANGELOG.md) können Sie die unerwünschten Elemente mit '' – BradGreens

+0

danke @bradgreeens, hinzugefügt, um die Antwort –

3

Sie könnten einfach in ersten drei Iterationen verstecken halten können, mit ng-show:

<label ng-repeat="stones in rocks"> 
    <a href="#">Rock {{$index}}</a> 
    <i class="icon-trash" ng-show="$index>2"></i> 
</label>