ฉันมีรหัสต่อไปนี้ที่ซ้ำและแสดงชื่อผู้ใช้และคะแนนของเขา:
<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>
และตัวควบคุมเชิงมุมที่สอดคล้องกัน
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'}]
}
เมื่อฉันเรียกใช้โค้ดด้านบนฉันได้รับข้อผิดพลาด: ถึงการทำซ้ำ 10 $ Digest () แท้ง! ข้อผิดพลาดในคอนโซลของฉัน
ฉันได้สร้างjsfiddleสำหรับสิ่งเดียวกัน
เพรดิเคตการเรียงลำดับจะถูกกำหนดค่าเริ่มต้นภายใน ng-repeat เท่านั้นและยังมีการใช้ขีด จำกัด กับจำนวนอ็อบเจ็กต์ ดังนั้นฉันจึงรู้สึกว่าการมีทั้ง sortby และ limitTo watch ร่วมกันเป็นสาเหตุของข้อผิดพลาด
หาก $ scope.reverse เป็นเท็จ (ลำดับคะแนนจากน้อยไปมาก) แสดงว่าไม่มีข้อผิดพลาด
ใครช่วยฉันเข้าใจว่ามีอะไรผิดปกติที่นี่? ขอบคุณมากสำหรับความช่วยเหลือของคุณ