ng-repeat 只显示最后一个元素 [英] ng-repeat show only last element

查看:37
本文介绍了ng-repeat 只显示最后一个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 AngularJs 开发消息收件箱,但我遇到了一个问题:我只想显示 ng-repeat 中的最后一个元素.我做了一些研究,发现下面的代码应该可以工作.

<ul><div><跨度>{{recipient.$id}}
</span>
  • <span ng-repeat="收件人中的消息">{{messages.sender}} {{messages.message}} <br></span>
  • 然而,事实并非如此.你们能告诉我我做错了什么吗?我认为 array.length-1 应该限制 ng-repeat 只显示数组中的最后一个对象.

    谢谢!

    解决方案

    ng-repeat 中使用 angularjs $last.这是文档

    <span ng-show="$last">{{n}}</span>

    <span ng-show="$last">{{n}}</span> 当它的最后一次重复 $last 将是 true 否则它的 false 所以你可以使用 ng-showng-if$last>.

    这是一个示例演示

    <小时>

    更新我认为不需要 ng-repeat ,因为您需要显示数组的最后一个元素(这与@Michael P. Bazos 的回答相同),要做到这一点:

    $scope.data = [42, 42, 43, 43, 50];将最后一个值打印为:{{ data[data.length-1] }}

    这是演示

    但是如果你真的需要用 ng-repeat 做这个

    [data[data.length-1]] 只用最后一个元素创建一个数组.

    <div ng-repeat="n in [data[data.length-1]] track by $index"><span>{{n}}</span>

    演示

    I am developing inbox for messages with AngularJs, and I came across one issue: I want to show only last element within ng-repeat. I did some research, and found out that the code below should work.

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

    However, it does not. Can you guys tell me what am I doing wrong? I thought that array.length-1 should limit ng-repeat to show only the last object in an array.

    Thanks!

    解决方案

    use angularjs $last in ng-repeat. here is the doc

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

    <span ng-show="$last">{{n}}</span> when its last repeat $last will be true otherwise its false so you can use ng-show or ng-if with $last.

    here is a sample demo


    UPDATE I think no need of ng-repeat there since you need to show the last element of the array (this is same as @Michael P. Bazos's answer), to do that:

    $scope.data = [42, 42, 43, 43, 50];
    
    print the last value as : {{ data[data.length-1] }}
    

    here is the demo

    but if you really need to do with ng-repeat do as this

    [data[data.length-1]] create an array only with last element.

    <div ng-repeat="n in [data[data.length-1]] track by $index">
        <span>{{n}}</span>
    </div>
    

    demo

    这篇关于ng-repeat 只显示最后一个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    相关文章
    其他开发最新文章
    热门教程
    热门工具
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆