我正在开发一个系统,我想在其中嵌套两个ng-repeat语句,以便我可以通过2D数组工作。我可以使用版本1.1.1成功完成任务,如您所见:
但是,当我使用完全相同的代码集并将Angular的版本更改为1.2.1时,代码将不再起作用并抛出错误:
错误:
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版本中显示的任务?
答案 0 :(得分:7)
您需要做的就是阅读错误消息并收听它。变化:
<div ng-repeat="x in value">{{x}}</div>
要:
<div ng-repeat="x in value track by $index">{{x}}</div>
答案 1 :(得分: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>