【发布时间】:2018-07-12 23:48:34
【问题描述】:
我想要实现的是在我的嵌套对象上使用ng-repeat 进行简单迭代,看起来像这样
$scope.data = {
name: "",
id: "",
nestedObj: {
prop1: "string",
prop2: false,
prop3: ""
}
};
在我看来我是这样尝试的
<div ng-repeat="(key, value) in data.nestedObj">
{{key}} : {{value}}
</div>
...但我经常收到以下控制台错误:
Error: Duplicates in a repeater are not allowed. Repeater: (key, value) in data.type key: string
我错过了什么还是我做错了什么?
更新!
所以在Sajeetharan 的回答和Slava Utesinov 的评论之后,我设置了一个Plunkr 来试一试。令人惊讶的答案是,如果一个对象内部有多个“空”键(作为值的空字符串),您显然无法迭代该对象。
更新 2
另外,您似乎不能两次使用相同的字符串值...天哪,我喜欢 Angular :)
结局更新
正如Sajeetharan 和Slava Utesinov 提到的,track by $index 为我解决了这个问题
【问题讨论】:
-
您有两个具有相同
prop2名称的属性。 -
我的错-谢谢,我更新了问题。但这不是问题
-
您应该通过 plunker 重现您的错误。可能是
nestedObj是数组吗? -
所以修改成这个
ng-repeat="(key, value) in data.nestedObj track by $index" -
我要试一试,用结果更新我的问题!
标签: javascript angularjs duplicates angularjs-ng-repeat