Ich habe den folgenden Code, der den Namen des Benutzers und seine Punktzahl wiederholt und anzeigt:
<div ng-controller="AngularCtrl" ng-app>
<div ng-repeat="user in users | orderBy:predicate:reverse | limitTo:10">
<div ng-init="user.score=user.id+1">
{{user.name}} and {{user.score}}
</div>
</div>
</div>
Und der entsprechende Winkelregler.
function AngularCtrl($scope) {
$scope.predicate = 'score';
$scope.reverse = true;
$scope.users = [{id: 1, name: 'John'}, {id: 2, name: 'Ken'}, {id: 3, name: 'smith'}, {id: 4, name: 'kevin'}, {id: 5, name: 'bob'}, {id: 6, name: 'Dev'}, {id: 7, name: 'Joe'}, {id: 8, name: 'kevin'}, {id: 9, name: 'John'}, {id: 10, name: 'Ken'}, {id: 11, name: 'John'}, {id: 1, name: 'John'}, {id: 2, name: 'Ken'}, {id: 3, name: 'smith'}, {id: 4, name: 'kevin'}, {id: 5, name: 'bob'}, {id: 6, name: 'Dev'}, {id: 7, name: 'Joe'}, {id: 8, name: 'kevin'}, {id: 9, name: 'John'}, {id: 10, name: 'Ken'}]
}
Wenn ich den obigen Code ausführe, wird der Fehler angezeigt: 10 $ Digest () - Iterationen erreicht. Abbruch! Fehler in meiner Konsole.
Ich habe jsfiddle dafür erstellt.
Das Sortierprädikat wird nur innerhalb der ng-Wiederholung initialisiert und auch die Anzahl der Objekte wird begrenzt. Daher denke ich, dass es der Grund für den Fehler ist, sowohl die sortby- als auch die limitTo-Beobachter zusammen zu haben.
Wenn $ scope.reverse false ist (aufsteigende Reihenfolge der Punktzahl), tritt kein Fehler auf.
Kann mir jemand helfen zu verstehen, was hier falsch ist? Vielen Dank für Ihre Hilfe.