我有一个像:
这样的数组$scope.items = [];
$scope.items[0] = {val1: 1, val2: 2}
我正在尝试使用ng-repeat,如:
<div ng-repeat = "item in items[0]"> {{item.val1}} </div>
这是使用它的正确方法吗?谢谢:D!
答案 0 :(得分:0)
items[0]
不是数组而是对象,因此您需要使用(key, value) in expression
表示法(请参阅docs)来迭代对象属性:
<div ng-repeat="(key, value) in items[0]">{{key}} {{value}}</div>
答案 1 :(得分:0)
取决于你想要达到的目标。看,这里有两件事要迭代(根据你的需要,迭代也是有意义的):
要迭代数组的元素,请使用:
<div ng-repeat = "item in items"> {{item.val1}} </div>
在这种情况下,item
将是数组的当前元素,上面的语句将打印数组中每个元素的val1
属性。
要迭代对象的属性,请使用:
<div ng-repeat = "item in items[0]"> {{item}} </div>
这将打印数组第一个元素的每个属性。
items[0]
是一个对象,您在此处迭代其属性(因此ng-repeat中的item
将引用属性)。因此,编写item.val1
没有意义,因为item
将是1
(在您的示例中),而不是对象,而是原语。
当然,您也可以通过组合两个来迭代每个数组元素的每个属性:
<div ng-repeat = "item in items">
<div ng-repeat = "prop in item">{{prop}} </div>
</div>
这将打印数组中每个项目的每个属性。
决定使用哪一个取决于您的用例。