我正在尝试迭代一个对象数组,并使用Angular在我的HTML中显示它们。通过使用“$ by index”,我之前没有遇到任何问题。但标准错误仍然存在:
错误:
[ngRepeat:dupes] http://errors.angularjs.org/1.3.15/ngRepeat/dupes?p0=(key%2C%20value)%20in%20n&p1=string%3Ab&p2=b
但我已经在$index
添加了跟踪。我相信没有任何问题请求数据,因为我能够正确显示它。
<div ng-repeat="n in post.userData.bookmarks track by $index" >
<div ng-repeat="(key, value) in n">
<div><a href="/tuts/{{value}}">{{ key }}</a></div>
</div>
</div>
建议?
数据集:
书签:[{"1234": "Title1"}, {"5678": "Title2"}]
用户会为稍后要阅读的帖子添加书签。我将帖子ID和帖子的标题保存到一个对象并将其存储在一个数组中。 (我实际上只是想将它存储到一个像这样的对象:{"1234": "Title1", "5678": "Title2"}
,但无法用mongodb来解决它,因为它似乎不能让你保存为对象数据类型。)
然后我想在他们的个人资料中ng-repeat
用户的书签。我知道如何做到这一点的唯一方法是迭代数组,然后迭代每个对象。当然,每个对象中只有一个项目。但这就是为什么我有第二个ng-repeat
。但是,当我按$index
跟踪两者时,作为下面的答案列表之一,它仍然没有给出所需的行为。
可能导致问题的是我还有一种仪表板,可以在查看任何给定的帖子时在侧面查看。在仪表板上,他们应该能够看到他们的书签。此外,如果他们在他们已经添加书签的帖子上,如果他们点击帖子上的(联合国)书签按钮,它应该会自动删除其书签仪表板上的该书签。
但这些建议都没有奏效。
答案 0 :(得分:1)
您忘记了另一个ng-repeat:<div ng-repeat="(key, value) in n track by $index">
答案 1 :(得分:0)
我不知道你为什么写两次重复
<div ng-repeat="n in post.userData.bookmarks track by $index" >
<a ng-href="/tuts/{{n.key}}">{{ n.key}}</a>
</div>
OR
<div ng-repeat="(key,value) in post.userData.bookmarks track by $index" >
<a ng-href="/tuts/{{value}}">{{ value}}</a>
</div>
键是从对象获得的任何内容。