2016-01-02 37 views
0

我想遍歷一個對象數組,並使用Angular在我的HTML中顯示它們。我之前做過這個,沒有任何問題,使用「通過$ 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來追蹤兩者時,作爲下面的答案列表之一,它仍然沒有給出所需的行爲。

可能導致問題的東西是,我也有一種儀表板,可以在查看任何給定的帖子的同時在側面查看。在儀表板上,他們應該能夠看到他們的書籤。此外,如果他們在已添加書籤的帖子上,如果他們點擊帖子上的(un)書籤按鈕,它應自動刪除其書籤儀表板上的書籤。

但是沒有任何建議工作。

+0

提供了數據樣本來複制它。 'n'看起來像什麼? – charlietfl

+0

有些東西你沒有在這裏展示。一個基本的角度樣本與你在這裏描述的樣本數據和相同的'ng-repeat'結構一起工作沒有問題。 http://plnkr.co/edit/ikY1msnz8FvJI1OtwMVI?p=preview。它甚至在'key'被複制時起作用。 – Claies

回答

1

你忘了另一個NG-重複:<div ng-repeat="(key, value) in n track by $index">

+0

這不起作用。如果我這樣做了大量的數字,我相信這是索引數字。但沒有任何職位,因爲它應該。有175個數字發佈。實際上,在陣列中只有兩個對象。不是175.它說有一個鑄造錯誤。 – jro

+0

@JonRoby:對不起,我有一個錯誤的錯誤'由$ index' –

+0

我添加了一個編輯。這不起作用。 – jro

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> 

關鍵是什麼,你從對象得到。

+0

爲什麼你使用兩次ng-repeat? post.userData.bookmarks對象中有什麼? –