我正在为使用AngularJs的消息开发收件箱,我遇到了一个问题:我想只显示ng-repeat
中的最后一个元素。我做了一些研究,发现下面的代码应该有效。
<div class="inbox" ng-repeat="recipient in messages">
<ul>
<div>
<span> {{recipient.$id}} <br> </span>
<li class="inboxItem">
<span ng-repeat="messages in recipient"> {{messages.sender}} {{messages.message}} <br></span>
</li>
</div>
</ul>
</div>
然而,它没有。你能告诉我我做错了什么吗?我认为array.length-1
应该限制ng-repeat以仅显示数组中的最后一个对象。
谢谢!
答案 0 :(得分:38)
在$last
中使用angularjs ng-repeat
。这是the doc
<div ng-repeat="n in data track by $index">
<span ng-show="$last">{{n}}</span>
</div>
<span ng-show="$last">{{n}}</span>
当其上一次重复$last
为true
时为false
,因此您可以使用ng-show
或ng-if
$last
}}
这是一个sample demo
<强>更新强> 我认为不需要ng-repeat,因为你需要显示数组的最后一个元素(这与@Michael P. Bazos的答案相同),为此:
$scope.data = [42, 42, 43, 43, 50];
print the last value as : {{ data[data.length-1] }}
这是demo
但如果你真的需要用ng-repeat做这个
[data[data.length-1]]
仅使用最后一个元素创建一个数组。
<div ng-repeat="n in [data[data.length-1]] track by $index">
<span>{{n}}</span>
</div>
答案 1 :(得分:9)
您可以将limitTo
过滤器与-1
示例 :
<div ng-repeat="friend in friends | limitTo: -1">
{{friend.name}}
</div>
请参阅fiddle
但如果你只展示一个元素,也许你想要摆脱ng-repeat
......:
<div>
{{friends[friends.length - 1].name}}
</div>
答案 2 :(得分:0)
这样的事情应该有效。
<div ng-repeat="something in vm.somethings">
<span ng-show="$last">{{ something.value }}</span>
</div>