Tôi có đoạn mã sau lặp lại và hiển thị tên của người dùng và điểm của anh ấy:
<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>
Và bộ điều khiển góc tương ứng.
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'}]
}
Khi tôi chạy đoạn mã trên, tôi nhận được các lỗi lặp: 10 $ digest (). Hủy bỏ! lỗi trong giao diện điều khiển của tôi.
Tôi đã tạo jsfiddle cho cùng.
Vị từ sắp xếp chỉ được khởi tạo bên trong ng-repeat và giới hạn đang được áp dụng cho số lượng đối tượng. Vì vậy, tôi cảm thấy có cả người theo dõi và giới hạn Để người theo dõi cùng nhau là lý do cho lỗi.
Nếu $ scope.reverse là sai (thứ tự tăng dần của điểm số), thì nó không bị lỗi.
Bất cứ ai có thể giúp tôi hiểu những gì sai ở đây? Rất đánh giá cao sự giúp đỡ của bạn.