跟踪$ index并没有解决欺骗错误

时间:2016-01-02 16:23:30

标签: javascript angularjs ng-repeat mean

我正在尝试迭代一个对象数组,并使用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跟踪两者时,作为下面的答案列表之一,它仍然没有给出所需的行为。

可能导致问题的是我还有一种仪表板,可以在查看任何给定的帖子时在侧面查看。在仪表板上,他们应该能够看到他们的书签。此外,如果他们在他们已经添加书签的帖子上,如果他们点击帖子上的(联合国)书签按钮,它应该会自动删除其书签仪表板上的该书签。

但这些建议都没有奏效。

2 个答案:

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

键是从对象获得的任何内容。