【问题标题】:ng-repeat show only last elementng-repeat 只显示最后一个元素
【发布时间】:2016-02-11 22:44:46
【问题描述】:

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

谢谢!

【问题讨论】:

  • 为什么要使用 ng-repeat 只显示一个元素?
  • 我的数据结构在这个主题中描述:stackoverflow.com/questions/29166236/… 并且在没有 ng-repeat 的情况下更复杂(至少以我的技能)

标签: angularjs ng-repeat


【解决方案1】:

在ng-repeat 中使用angularjs $last。这里是the doc

<div ng-repeat="n in data track by $index">
   <span ng-show="$last">{{n}}</span>
</div>

&lt;span ng-show="$last"&gt;{{n}}&lt;/span&gt; 最后一次重复时,$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>

demo

【讨论】:

  • 太棒了!它帮助很大! :) 谢谢!
【解决方案2】:

您可以将limitTo 过滤器与-1 一起使用

示例:

<div ng-repeat="friend in friends | limitTo: -1">
    {{friend.name}}
</div>

见fiddle

但如果你只显示一个元素,也许你想摆脱ng-repeat...:

<div>
    {{friends[friends.length - 1].name}}
</div>

【讨论】:

  • 所以我实现了“limitTo:-1”,但它似乎对显示的数据没有影响。我正在使用 ng-repeat,因为我的数据结构需要嵌套的 ng-repeat(收件人中的每条消息都有来自 firebase 的唯一 ID)我的数据结构在这里描述:stackoverflow.com/questions/29166236/…
  • 像在您的应用程序中一样使用示例数据编辑小提琴,我会看看我能做什么。
  • ADD: "limitTo: -1" 确实适用于外部 ng-repeat,但它不适用于内部 ng-repeat。
  • 那么你正在迭代的内部结构可能不是一个集合
  • 原来 K.Toress 的回答就像一个魅力。谢谢你的帮助,我真的很感激!
【解决方案3】:

这样的事情应该可以工作。

<div ng-repeat="something in vm.somethings">
  <span ng-show="$last">{{ something.value }}</span>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    相关资源
    最近更新 更多