1. 程式人生 > >關於ng-repeat的track by $index

關於ng-repeat的track by $index

在開發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)];