Ng-repeatの最初の要素をどのように非表示にしますか?
<div ng-repeat="item in items" ng-hide="true">
<div>{{ item.value }}</div>
</div>
これは、ng-repeatブロック全体が非表示になるという点で機能しますが、itemsの最初の項目のみを非表示にするにはどうすればよいですか?もっと目立つhtml/etcを使用して完全に別の方法で表示したいので、そのデータのリストに含めると便利です。
あなたはこれを行うことができます
<div ng-repeat="item in items" ng-show="!$first">
<div>{{ item.value }}</div>
</div>
ドキュメントは次のとおりです。 http://docs.angularjs.org/api/ng.directive:ngRepeat
非表示にする必要はありません。フィルターを使用して、リストから最初のアイテムを除外するだけです。
<div ng-repeat="item in items|filter:$index>0">
<div>{{ item.value }}</div>
</div>
より新しいバージョンの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がそれをうまく処理する)の間続くことを意味します。
最後にスキップする必要がある場合は、ng-if = '!$ last'を使用します。