2015-09-30 18 views
0

我有一個數組,如:

$scope.items = []; 
$scope.items[0] = {val1: 1, val2: 2} 

我試圖使用NG-重複這樣的:

<div ng-repeat = "item in items[0]"> {{item.val1}} </div> 

它是正確的如何使用這個?感謝:D !

回答

0

items[0]不是一個數組,但對象,所以你需要使用(key, value) in expression符號(見docs)遍歷對象屬性:

<div ng-repeat="(key, value) in items[0]">{{key}} {{value}}</div> 
+0

謝謝您的回答,究竟是什麼鍵和值?在我的範圍項目y有另一個範圍,這是mi問題的原因:D – Luis

+0

最後這是我的解決方案,我做了這樣的事情:

{{value.value2}}
Luis

0

取決於什麼是你想要的目的。看,有兩件事情需要迭代(它可以是有意義的迭代或者,根據您的需要):數組的

  • 元素的對象(在objecct是任何數組的
  • 屬性元素)

爲了迭代陣列的元素,可以使用:

<div ng-repeat = "item in items"> {{item.val1}} </div> 
在這種情況下

item將所述陣列的所述當前元素,和上面的語句將打印的每次val1屬性數組中的元素。

要遍歷對象屬性,使用:

<div ng-repeat = "item in items[0]"> {{item}} </div> 

這將打印數組的第一元素的每個屬性。 items[0]是一個對象,你通過它的屬性迭代在這裏(所以item納克重複內將引用屬性)。因此,它是沒有意義的寫item.val1,因爲item1(在你的例子),而不是一個目標,而是一個原始。

當然,你也可以遍歷每個數組元素的每個屬性,通過結合兩個

<div ng-repeat = "item in items"> 
    <div ng-repeat = "prop in item">{{prop}} </div> 
</div> 

這將打印每個項目的每個屬性在數組中。

決定使用哪一個取決於你的使用情況。