2013-04-01 9 views
54

Wie würde ich das erste Element einer ng-Wiederholung verstecken?Angular JS erstes Element von ng-repeat ausblenden

<div ng-repeat="item in items" ng-hide="true"> 
    <div>{{ item.value }}</div> 
</div> 

Das funktioniert, dass der ganze ng-repeat-Block versteckt ist, aber wie würde ich nur das erste Element in den Elementen verstecken? Ich möchte es komplett anders anzeigen, indem ich prominenteres HTML/etc verwende, also ist es nützlich, es in dieser Liste von Daten zu haben.

Antwort

8

Keine Notwendigkeit zu verbergen, verwenden Sie einfach einen Filter auf das erste Element aus der Liste auszuschließen:

<div ng-repeat="item in items|filter:$index>0"> 
    <div>{{ item.value }}</div> 
</div> 
+0

Das Filterprädikat ist falsch (Angular v1.3.1) – christang

1

In neueren Versionen von Angular gibt es eine einfachere Lösung.

Der Filter "LimitTo" unterstützt nun ein "begin" Argument (docs):

{{ limitTo_expression | limitTo : limit : begin}} 

So kann man es so in einer ng-Repeat verwenden:

ng-repeat="item in items | limitTo: items.length : 1" 

Das bedeutet, dass ng-repeat beginnt mit dem Index 1 (anstelle des Standardindex 0) und wird für den Rest der Länge des Elementarrays fortgesetzt (was kleiner als items.length ist, aber limitTo wird das problemlos bewältigen).

+1

Slick! Extra-Karma zum Verknüpfen mit der eigentlichen Dokumentation. – waffles

0

Falls Sie den letzten Schritt überspringen müssen, verwenden Sie ng-if = '! $ Last'.

Verwandte Themen