我搜索了很多但找不到。
这是我的HTML
<li ng-repeat="tmp in list" ng-class="{active: $last}">
<a href="#{{tmp.url}}">{{tmp.text}}</a>
</li>
工作正常。但我想要的是ng-repeat
中的最后一项,我不想添加 <a>
标记。我想用以下方式
<li ng-repeat="tmp in list" class="active">
{{tmp.text}}
</li>
对于我使用class="active"
添加的ng-class="{active: $last}"
,但对于没有<a>
标记的情况,如何添加?
答案 0 :(得分:5)
您可以按照以下方式执行此操作:
<li ng-repeat="tmp in list" ng-class="{active: $last}" ng-switch="$last">
<span ng-switch-when="true">{{tmp.text}}</span>
<a href="#{{tmp.url}}" ng-switch-default>{{tmp.text}}</a>
</li>
以下是工作小提琴的链接:http://jsfiddle.net/zFH4Y/
答案 1 :(得分:4)
您始终可以在ng-show="!$last"
上使用<a>
。这意味着它不会为最后一个元素显示它。
或者,您可以创建一个仅根据某个值(!$ last)编译内容的指令。如果您不想将实际标记添加到dom中,而不是仅仅隐藏它,那么这种方法将起作用。
希望这有帮助!
答案 2 :(得分:0)
不如其他解决方案那么优雅,但您可以迭代直到数组的第2个到最后一个元素,然后手动执行不带a
标记的最后一个元素
<li ng-repeat="tmp in list.slice(0,list.length-1)">
<a href="#{{tmp.url}}">{{tmp.text}}</a>
</li>
<li class="active">
{{list[list.length-1].text}}
</li>