ng-repeat show only last element

前端 未结 3 1998
耶瑟儿~
耶瑟儿~ 2021-02-12 16:51

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 ou

相关标签:
3条回答
  • 2021-02-12 17:23

    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

    0 讨论(0)
  • 2021-02-12 17:29

    Something like this should work.

    <div ng-repeat="something in vm.somethings">
      <span ng-show="$last">{{ something.value }}</span>
    </div>
    
    0 讨论(0)
  • 2021-02-12 17:30

    You could use limitTo filter with -1

    Example :

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

    See fiddle

    But if you are showing only one element, maybe you want to get rid of the ng-repeat... :

    <div>
        {{friends[friends.length - 1].name}}
    </div>
    
    0 讨论(0)
提交回复
热议问题