2014-10-29 22 views
6

我想ng-repeat,但只能從第二個數組元素,直到最後。我試圖使用AngularJS:從第二個索引ng-repeat

ng-repeat="entry in entries | filter: $index==0" 

但這一個沒有工作。如果我嘗試使用ng-if,就像這樣

ng-repeat="entry in entries" ng-if="$index != 0" 

我在截取中出現錯誤。

這是最好的解決方案是什麼?順便說一句,我的AngularJS版本是1.1.5,因爲我的應用程序是Hawtio的插件(它仍然停留在版本1.1.5)。謝謝。

回答

16

爲什麼不乾脆:

ng-repeat="entry in entries.slice(1,entries.length)" 

小提琴:http://jsfiddle.net/10d6o1aq/

+0

我將在html的其他地方使用第一個元素,所以這可能不是一個選項。 – menorah84 2014-10-29 07:16:37

+1

@ menorah84你絕對能夠做到這一點:http://jsfiddle.net/10d6o1aq/1/ – Cherniv 2014-10-29 07:18:27

+0

@ menorah84不要害怕,它只是視圖中原始數組的切片副本 – Cherniv 2014-10-29 07:24:00

5

你可以試試這個:

ng-repeat="entry in entries" ng-show="!$first" 

這裏的reference

+2

是的,正如Mukund後面提到的那樣,'ng-hide =「$ first」'也是有效的。 – denisazevedo 2014-10-29 07:06:27

4

隱藏使用第一要素$first

<div ng-repeat="entry in entries" ng-hide="$first"> 
    ... 
</div> 
2

有一個在較新版本的角度更簡單的解決方案(這是行不通的對於原來的問題,由於他們對Angular版本1.1.5的限制,但它可以用於其他人員)

過濾器 「limitTo」 現在支持一個 「開始」 的說法(docs):

ng-repeat="entry in entries | limitTo: entries.length : 1" 

這意味着:

{{ limitTo_expression | limitTo : limit : begin}} 

所以,你可以在NG重複使用它像這樣ng-repeat將從索引1(而不是默認索引0)開始,並將繼續處理其餘條目數組的長度(小於entries.length,但limitTo將處理該數據)。