Ich habe eine Liste, die die Namen, die ich gewählt habe, protokolliert, wie unten gezeigt. Was ich will, ist, dass die Liste immer nur die letzten 5 Ergebnisse zeigt, aber was ich im Moment habe, zeigt die ersten 5 in der Reihenfolge der Zeit mit den neuesten zuerst. Wie kann dies erreicht werden?angularjs Zeige die letzten 5 Einträge in ng-repeat list
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();
}
}