From 3b89e4eef13be0ea25758f021de5eb38152cd0bf Mon Sep 17 00:00:00 2001 From: James deBoer Date: Thu, 1 Aug 2013 17:21:54 -0700 Subject: docs(minerr): Adds a description for ngRepeat.dupes Closes #3439 --- docs/content/error/ngRepeat/dupes.ngdoc | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'docs/content') diff --git a/docs/content/error/ngRepeat/dupes.ngdoc b/docs/content/error/ngRepeat/dupes.ngdoc index eb25ec67..42d4c77a 100644 --- a/docs/content/error/ngRepeat/dupes.ngdoc +++ b/docs/content/error/ngRepeat/dupes.ngdoc @@ -1,4 +1,22 @@ @ngdoc error @name ngRepeat:dupes -@fullName Duplicate Repeater Key +@fullName Duplicate Key in Repeater @description + +Occurs if there are duplicate keys in an {@link api/ng.directive:ngRepeat ngRepeat} expression. Duplicate keys are banned because AngularJS uses keys to associate DOM nodes with items. + +By default, collections are keyed by reference which is desirable for most common models but can be problematic for primitive types that are interned (share references). + +For example the issue can be triggered by this *invalid* code: + +``` +
+``` + +To resolve this error either ensure that the items in the collection have unique identity of use the `track by` syntax to specify how to track the association between models and DOM. + +To resolve the example above can be resolved by using `track by $index`, which will cause the items to be keyed by their position in the array instead of their value: + +``` + +``` -- cgit v1.2.3