跟踪$index是't解决欺骗错误

track by $index isn't solving dupes error

本文关键字:解决 欺骗 错误 index 跟踪      更新时间:2023-09-26

我正在尝试迭代一组对象,并使用Angular在HTML中显示它们。我以前使用过"trackby$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对两者进行跟踪时,正如下面列出的答案之一所示,它仍然没有给出所需的行为。

可能会造成问题的是,我还有一种仪表板,在查看任何给定的帖子时都可以从侧面查看。在仪表板上,他们应该能够看到自己的书签。此外,如果他们在他们已添加书签的帖子上,如果他们单击帖子上的(取消)书签按钮,则会自动删除书签面板上的书签。

但这些建议都没有奏效。

您忘记了另一个ng重复:<div ng-repeat="(key, value) in n track by $index">

我不知道你为什么写两次重复

  <div ng-repeat="n in post.userData.bookmarks track by $index" >
       <a ng-href="/tuts/{{n.key}}">{{ n.key}}</a>
   </div>

 <div ng-repeat="(key,value) in post.userData.bookmarks track by $index" >
      <a ng-href="/tuts/{{value}}">{{ value}}</a>
 </div>

关键是从对象中得到的任何东西。