在开发web应用时,我们经常需要用ng-repeat遍历$scope中的数组,去更新视图中的列表元素。
当我们数组中的元素重复时,浏览器在console中就报这样的错误。
$scope.array=[1, 1, 1, 1, 2];
Error: [ngRepeat:dupes]
因为AngularJS禁止ng-repeat中的数组中的元素重复,一般我们会使用track by $ index的方式解决这个问题。
$scope.number=[1, 1, 1, 1, 2];
ng-repeat=”n in number track by $index”
这里的重复的值,指的是原始值,如果我们用对象来表示,那么不会产生错误。比如Number对象:
$scope.number=[new Number(2), new Number(2), new Number(2)];
String对象:
$scope.number=[new String(2), new String(2), new String(2)];