我的控制器中有一个这样的数组:
$scope.myArray = [
{
id: 1,
name: "my object",
options: [
{
id: 1,
key: "key1",
value: "value1"
},
{
id: 2,
key: "key2",
value: "value2"
}
]
},
{
id: 2,
name: "my object 2",
options: [
{
id: 1,
key: "key3",
value: "value3"
},
{
id: 2,
key: "key4",
value: "value4"
}
]
}
]
我想在我的模板中以角度循环。这就是我到目前为止所做的:
<div ng-repeat="obj in myArray">
<input ng-model="myArray[$index].name" />
<div ng-repeat="option in obj.options">
/*How can I use $index again here to loop through the options array ? Wouldn't $index be for the parent loop */
<input ng-model="obj.options[$index].value" />
</div>
</div>
我的问题是,在我尝试使用obj.options[$index]
的上述内部循环中,这是否会引用options数组的正确索引,还是会认为它正在使用父数组的索引?
答案 0 :(得分:4)
$index
将始终为您提供当前ng-repeat
索引。要获取父ng-repeat
索引,请使用$parent.$index
答案 1 :(得分:2)
试试这个:
<div ng-repeat="obj in myArray">
<input ng-model="obj.name" />
<div ng-repeat="option in obj.options">
<input ng-model="option" />
</div>
</div>
在Angular中使用ng-repeat&#34; obj in myArray&#34;它声明&#34; obj&#34;是在数组中迭代的当前项的别名。
答案 2 :(得分:2)
试试这个你想要从ng-repeat获取索引:
<div ng-repeat="(indexParent, obj) in myArray">
<input ng-model="myArray[indexParent].name" />
<div ng-repeat="(index,option) in obj.options">
<input ng-model="myArray[indexParent].options[index].value" />
</div>