2014-04-01 32 views
3

我正在研究一个我想嵌套两个ng-repeat语句的系统,以便我可以通过二维数组工作。我能够成功完成使用1.1.1版本,你可以看到这里的任务:AngularJS嵌套的ng-repeat在版本1.2.1中不起作用

http://jsfiddle.net/skArT/1/

然而,当我把完全相同的代码设置和更改的角版本1.2.1的代码不再起作用,并抛出一个错误:

http://jsfiddle.net/skArT/2/

错误:

Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: x in value, Duplicate key: number:0 

所以我的问题是,我怎样才能完成使用新版本的Angular版本1.1.1中显示的任务?

回答

7

您只需要阅读错误信息并听取它。变化:

<div ng-repeat="x in value">{{x}}</div> 

要:

<div ng-repeat="x in value track by $index">{{x}}</div> 
+0

嘿,你是正确的先生。 TYVM – Shane

0

添加track by条款解决这个问题。对我来说,在你的情况下,这似乎相当微不足道。

<body ng-app="myApp" ng-controller="myCtrl"> 
    <span ng-repeat="(index, value) in field">   
     <div ng-repeat="(key,x) in value track by key">{{x}}</div> 
     <br/> 
    </span> 
</body> 

http://jsfiddle.net/92bSt/

+0

是的,看到解决方案后,现在看起来很明显,错误指向正确的方向。我从来没有在另一种语言的任何逻辑操作中看到过“追踪”。没有任何经验可以指导我解决这个问题。 – Shane