2013-06-19 16 views
1

我正在使用angular 1.1.5。在我的代碼中,我正在讀取一個帶有一個對象數組的json對象。每個對象都有一個屬性,表示標籤列表爲空格分隔列表。我正在計算自定義過濾器中的出現次數,並用ng-repeat輸出結果。沒什麼複雜。1.1.1和1.1.5之間的ng-repeat差異

但是1.1.1和1.1.5似乎有區別。

我的NG-重複表達:

(key, value) in (r.items | extractLabels:'labels')

它與角1.1.1。請參閱http://jsfiddle.net/waxolunist/vQyCn/

它不適用於角度1.1.5。見http://jsfiddle.net/waxolunist/vQyCn/8/

我獲得以下錯誤:Duplicates in a repeater are not allowed.

但它與以下修改的代碼工作:

(key, value) in (r.items | extractLabels:'labels') track by $id(key)

http://jsfiddle.net/waxolunist/vQyCn/9/

我讀到這個文檔中track by表達(http://code.angularjs.org/1.1.5/docs/api/ng.directive:ngRepeat),它的工作原理,但我完全不明白。

有人可以請我解釋一下,我在這裏做什麼?我做對了嗎?爲什麼這種差異?

回答

1

在較新版本的angular中,它不允許在list/object中重複,所以爲了從對象中刪除這個重複,可以通過使用unique-id(track by $ id(key))引用它們來區分所有項目。即你在做什麼是正確的找出重複錯誤。

+0

我想我可以按照你的解釋。謝謝 – Christian

相關問題