在 $scope 的位置上使用 ng-repeat
Using ng-repeat on a position of $scope
我有一个像这样的数组:
$scope.items = [];
$scope.items[0] = {val1: 1, val2: 2}
我正在尝试使用 ng-repeat,例如:
<div ng-repeat = "item in items[0]"> {{item.val1}} </div>
哪个才是正确的使用方法?谢谢 :D !
items[0]
不是数组而是对象,因此您需要使用 (key, value) in expression
表示法(参见 docs)来遍历对象属性:
<div ng-repeat="(key, value) in items[0]">{{key}} {{value}}</div>
取决于您要达到的目标。看,这里有两件事要迭代(根据您的需要迭代任何一个都有意义):
- 数组的元素
- 对象的属性(对象是任意数组元素).
要迭代数组的 个元素,请使用:
<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>
这将打印数组中每个项目的每个 属性。
根据您的用例决定使用哪一个。
我有一个像这样的数组:
$scope.items = [];
$scope.items[0] = {val1: 1, val2: 2}
我正在尝试使用 ng-repeat,例如:
<div ng-repeat = "item in items[0]"> {{item.val1}} </div>
哪个才是正确的使用方法?谢谢 :D !
items[0]
不是数组而是对象,因此您需要使用 (key, value) in expression
表示法(参见 docs)来遍历对象属性:
<div ng-repeat="(key, value) in items[0]">{{key}} {{value}}</div>
取决于您要达到的目标。看,这里有两件事要迭代(根据您的需要迭代任何一个都有意义):
- 数组的元素
- 对象的属性(对象是任意数组元素).
要迭代数组的 个元素,请使用:
<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>
这将打印数组中每个项目的每个 属性。
根据您的用例决定使用哪一个。