J'ai le code suivant qui répète et affiche le nom de l'utilisateur et son score:
<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>
Et le contrôleur angulaire correspondant.
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'}]
}
Lorsque j'exécute le code ci-dessus, j'obtiens l' erreur: 10 itérations $ digest () atteintes. Abandon! erreur dans ma console.
J'ai créé jsfiddle pour la même chose.
Le prédicat de tri est initialisé uniquement à l'intérieur du ng-repeat et la limite est également appliquée sur le nombre d'objets. je pense donc que le fait d'avoir à la fois les observateurs sortby et limitTo est la raison de l'erreur.
Si le $ scope.reverse est faux (ordre croissant de score), alors il n'erreur.
Quelqu'un peut-il m'aider à comprendre ce qui ne va pas ici? Merci beaucoup pour votre aide.