将自定义类应用于ng-repeat的最后一个元素

时间:2017-03-19 17:25:44

标签: angularjs

我想基于某个条件给ng-repeat的最后一个div赋予单独的宽度。如果a大于b,我想将class-a应用于最后一个div -

<div ng-repeat="variable in variables" ng-class="{(a>b)?'class-a':'class-b':$last}">
       <span> element</span>
</div>

但它不起作用。语法错了吗?

2 个答案:

答案 0 :(得分:1)

首先是类,然后是要评估的表达式。

取自ngClass文档:

<ANY class="ng-class: expression;"> ... </ANY>

所以在你的情况下:

<div ng-repeat="variable in variables" ng-class="{'class-a': a > b && $last}">
    <span> element</span>
</div>

如果a大于b并且它是ng-repeat中的最后一个,则上面将在div上添加class-a

<div ng-repeat="variable in variables" ng-class="{'class-a': a > b, 'class-b': $last}">
    <span> element</span>
</div>

如果a大于b,则上面会将class-a添加到div中,如果它是ng-repeat中的最后一个,它会将class-b添加到div中。

答案 1 :(得分:1)

希望我理解正确,如果a > b,你想要改变最后一个div 的风格。
您可以尝试使用以下内容:

<div ng-repeat="value in data" ng-class="[{'blue':((a > b) && $last)},{'red':((a < b) && $last)}]">
      {{value}}
</div>

请检查complete example.
希望这有帮助。