我正在建造一张桌子,我的桌子上有两张ng-repeat
。
我的问题是ng-repeat
的孩子是否有可能获得父ng-repeat
索引。例如:
<tbody>
<tr ng-repeat="company in companies">
<td ng-repeat="product in company">
company # = {{the company index}} and product {{$index}}
</td>
</tr>
</tbody>
我不确定如何在td ng-repeat
下添加公司索引。有没有办法做到这一点?非常感谢!
答案 0 :(得分:4)
这正是ng-init
所在的位置,用于替换ng-repeat的特殊属性,例如:ng-init="companyIdx=$index"
。因此,公司ng-repeat
创建的每个子范围都将具有此companyIdx
属性。
<tbody>
<tr ng-repeat="company in companies" ng-init="companyIdx=$index">
<td ng-repeat="product in company">
company # = {{companyIdx}} and product {{$index}}
</td>
</tr>
</tbody>
使用$parent
很好,但你有任何其他指令在它们之间创建一个子范围,例如: - ng-if
,另一个ng-repeat
等等。你必须疯了做$parent.$parent....
。使用ng-init
进行别名使其更加干净,更具可读性和可维护性。
答案 1 :(得分:2)
当然,请使用$parent
company # = {{$parent.$index}} and product {{$index}}
答案 2 :(得分:1)
使用$parent
可以获得父范围的原始数组。从那里,数组indexOf()
函数将获得元素相对于其数组的索引。在您的代码中,它看起来像这样
<tr ng-repeat="company in companies">
<td ng-repeat="product in company">
company # = {{$parent.companies.indexOf(company)}} and product {{$index}}
</td>
</tr>