Ta funkcja została dodana do angularjs w nowszych wersjach. chodzi o to, że zasadniczo nie należy wykonywać iteracji nad niektórymi typami pierwotnymi (np. Liczbami), ale nad niektórymi złożonymi obiektami.
z tego, co zrozumiałem, dyrektywa ngRepeat
sprawdza odniesienia, a nie rzeczywiste wartości, więc jeśli wykonasz iteracje na niektórych złożonych obiektach, ale spróbujesz zrobić to za pomocą zestawu typów pierwotnych, najprawdopodobniej nie będzie to działać długo jak "wszystkie" wartości różnią się od siebie.
EDIT
Następujące linie są kopie i wklejony z this link (i upewnij się, że używasz wersji stosunkowo up-to-date z angularjs - używam 1.1.5 i wszystko działa doskonale -)
Opis
Występuje, jeśli istnieją zduplikowane klucze w wyrażeniu ngRepeat. Zduplikowane klucze są zbanowane, ponieważ AngularJS używa kluczy do kojarzenia węzłów DOM z elementami.
Domyślnie kolekcje są kodowane przez referencje, co jest pożądane w przypadku większości popularnych modeli, ale mogą być problematyczne dla internowanych typów pierwotnych (odniesienia do udziałów).
Na przykład problem może być wywołany przez ten nieprawidłowy kod:
<div ng-repeat="value in [4, 4]">
</div>
Aby rozwiązać ten problem albo zapewnienia, że elementy w kolekcji mają niepowtarzalną tożsamość obsługi utwór składni, aby określić sposób, aby śledzić powiązanie modeli z DOM.
Aby rozwiązać powyższy przykład można rozwiązać za pomocą utwór $ index, która spowoduje, że przedmioty mają być szyfrowany poprzez ich pozycji w tablicy zamiast ich wartości:
<div ng-repeat="value in [4, 4] track by $index"></div>
OK, ale nadal "track by $ index" ma działać na int nie? – odwl
'track by $ index' wydaje się być zaimplementowane http://stackoverflow.com/questions/21763136/ –