回答:
ディレクティブ$last
内で変数を使用できますng-repeat
。docを見てください。
あなたはこのようにそれを行うことができます:
<div ng-repeat="file in files" ng-class="computeCssClass($last)">
{{file.name}}
</div>
どこcomputeCssClass
の関数であり、controller
唯一の引数と戻りとる'last'
かをnull
。
または
<div ng-repeat="file in files" ng-class="{'last':$last}">
{{file.name}}
</div>
<div ng-repeat="file in files" ng-class="{last: $last}"> {{file.name}} </div>
CSSを使用する方が簡単でクリーンです。
HTML:
<div ng-repeat="file in files" class="file">
{{ file.name }}
</div>
CSS:
.file:last-of-type {
color: #800;
}
ng-repeat
が後に続いている場合、これは機能せず<div class="file"><!-- dummy for creating new element --></div>
、既存の.file divのリストを分けて表示したいとします。
ng-repeat
末尾からそれらを区別する要素div
Paulの答えを詳しく説明すると、これはテンプレートコードと一致するコントローラーロジックです。
// HTML
<div class="row" ng-repeat="thing in things">
<div class="well" ng-class="isLast($last)">
<p>Data-driven {{thing.name}}</p>
</div>
</div>
// CSS
.last { /* Desired Styles */}
// Controller
$scope.isLast = function(check) {
var cssClass = check ? 'last' : null;
return cssClass;
};
また、可能であればこのソリューションを実際に回避する必要があることにも注意してください。本来、CSSはこれを処理できるため、JSベースのソリューションを作成する必要はなく、パフォーマンスも低下します。IE8をサポートする必要がある場合は残念ながら、このソリューションは機能しません(MDNサポートドキュメントを参照)。
CSSのみのソリューション
// Using the above example syntax
.row:last-of-type { /* Desired Style */ }