AngularJS嵌套ng-repeat在版本1.2.1中不起作用

时间:2014-04-01 18:40:02

标签: javascript angularjs ng-repeat

我正在开发一个系统,我想在其中嵌套两个ng-repeat语句,以便我可以通过2D数组工作。我可以使用版本1.1.1成功完成任务,如您所见:

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

但是,当我使用完全相同的代码集并将Angular的版本更改为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版本中显示的任务?

2 个答案:

答案 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>

http://jsfiddle.net/92bSt/