我有一个用JADE编写的代码,它使用两个ngRepeat指令,如下所示:
table
tr(ng-repeat="item in items track by $index")
td: .dropdown
button.btn.btn-default(data-toggle="dropdown") Choose One
ul.dropdown-menu
li(ng-repeat="option in item.options")
// I need this $index's value comes from the first ng-repeat above
a(ng-click="changeOption(item, option, $index)")
标记<a>
有ng-click
指令,可以调用changeOption(item, option, $index)
问题是我需要来自$index
函数中FIRST ng-repeat
指令的changeOption()
而不是第二个$index
指令。我可以将.filter
更改为其他名称或将其分配给另一个变量,以便我可以在第二次迭代中访问它吗?
谢谢
答案 0 :(得分:4)
您可以使用ng-init
(我以HTML格式回答):
<tr ng-repeat="item in items track by $index" ng-init="firstIndex = $index">
<!-- Then use it here -->
<a ng-click="changeOption(item, option, firstIndex)"></a>
</tr>
答案 1 :(得分:4)
无需使用ng-init
,使用ng-repeat
的表达式支持键/值访问权限。当您仍在使用数组时,它们键将是实际索引。
docs - https://docs.angularjs.org/api/ng/directive/ngRepeat
tr(ng-repeat="(t1, category) in vc.listData track by $index"
td: .dropdown
button.btn.btn-default(data-toggle="dropdown") Choose One
ul.dropdown-menu
li(ng-repeat="(t2, option) in item.options")
a(ng-click="changeOption(item, option, t1)")