Answers:
您可以$last
在ng-repeat
指令中使用变量。看看doc。
您可以这样做:
<div ng-repeat="file in files" ng-class="computeCssClass($last)">
{{file.name}}
</div>
where 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 */ }
<div ng-repeat="file in files" ng-class="!$last ? 'class-for-last' : 'other'">
{{file.name}}
</div>
这对我行得通!祝好运!