ng-repeat仅显示最后一个元素

时间:2015-03-21 13:50:44

标签: angularjs ng-repeat

我正在为使用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以仅显示数组中的最后一个对象。

谢谢!

3 个答案:

答案 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>当其上一次重复$lasttrue时为false,因此您可以使用ng-showng-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>

demo

答案 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>