web-dev-qa-db-ja.com

Angular JS ng-repeatの最初の要素を隠す

Ng-repeatの最初の要素をどのように非表示にしますか?

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

これは、ng-repeatブロック全体が非表示になるという点で機能しますが、itemsの最初の項目のみを非表示にするにはどうすればよいですか?もっと目立つhtml/etcを使用して完全に別の方法で表示したいので、そのデータのリストに含めると便利です。

54
Nick Cooper

あなたはこれを行うことができます

<div ng-repeat="item in items" ng-show="!$first">
    <div>{{ item.value }}</div>
</div>

ドキュメントは次のとおりです。 http://docs.angularjs.org/api/ng.directive:ngRepeat

110
Xesued

非表示にする必要はありません。フィルターを使用して、リストから最初のアイテムを除外するだけです。

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

より新しいバージョンのAngularには、よりシンプルなソリューションがあります。

フィルタ「limitTo」は、「begin」引数をサポートするようになりました( docs ):

{{ limitTo_expression | limitTo : limit : begin}}

したがって、ng-repeatで次のように使用できます。

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

これは、ng-repeatが(デフォルトのインデックス0ではなく)インデックス1で始まり、items配列の残りの長さ(items.lengthより短いが、limitToがそれをうまく処理する)の間続くことを意味します。

1
Rebecca

最後にスキップする必要がある場合は、ng-if = '!$ last'を使用します。

0
KKProg