angularjs显示ng-repeat列表中的最后5项

ak8*_*k85 9 javascript angularjs angularjs-ng-repeat

我有一个列表,记录我选择的先前名称,如下所示.我想要的是列表总是只显示最后5个结果,但是我现在所拥有的是以最新的第一个按顺序显示前5个.怎么能实现这一目标?

http://jsfiddle.net/sfqo2fn3/1/

    <div ng-controller="MyCtrl">
        <input type="text" ng-model="updatedname" />
        <input type="button" value="Change name" ng-click="changeName(updatedname)"/>
        <br/>
          Hello, {{name}}!
    <ul>
        <li ng-repeat="name in nameLog | limitTo:5 | orderBy:'time':true">{{name.value}} - {{name.time}}</li>
    </ul>    
    </div>

    var myApp = angular.module('myApp',[]);
    myApp.factory('UserService', function() {
                var _nameLog = [];
                var userService = {};
                userService.name = "John";
                userService.ChangeName = function (value) {
                    userService.name = value;
                };
                userService.logName  = function (value) {
                    _nameLog.push ({
                        "value":value,
                        "time" :Date.now()
                    });
                };
                userService.getNameLog = function(){ return _nameLog; }
        return userService;
    });

    function MyCtrl($scope, UserService) {
        $scope.name = UserService.name;
        $scope.updatedname="";
        $scope.changeName=function(data){
            $scope.updateServiceName(data);
        }
        $scope.updateServiceName = function(name){
            UserService.ChangeName(name);
            UserService.logName(name);
            $scope.name = UserService.name;
            $scope.nameLog = UserService.getNameLog();
        }
    }
Run Code Online (Sandbox Code Playgroud)

New*_*Dev 39

你可以做: | limitTo: -5

<li ng-repeat="name in nameLog | limitTo:-5 | orderBy:'time':true">...</li>
Run Code Online (Sandbox Code Playgroud)

来自文档:

limit:返回的数组或字符串的长度.如果限制数为正,则复制源数组/字符串开头的限制项数.如果数字为负数,则复制源数组/字符串末尾的限制项数.如果限制超过array.length,则将限制该限制