如何在嵌套的ng-repeat中用最佳方式追踪$index?

5

我有以下的HTML:

<div class="row" ng-repeat="row in grid track by $index">
    <div cell class="cell" ng-repeat="cell in row track by $index" ng-click="game.addItem($index, $index)">
        {{cell.value}}
    </div>
</div>

我需要在第一个ng-repeat中按索引进行跟踪,在第二个ng-repeat中也是这样,以便将它们传递给addItem()。最好的方法是如何同时传递它们?


我还没有尝试过,但是$index是否放在变量i.e. row.$index cell.$index上 - 为什么不直接传递行和单元格呢? - Jon
2个回答

6

我相信你能做到:

<div class="row" 
     ng-repeat="row in grid track by $index" 
     ng-init="$rowIndex = $index">
  <div cell class="cell" 
       ng-repeat="cell in row track by $index" 
       ng-click="game.addItem($rowIndex, $index)">
    {{cell.value}}
  </div>
</div>

(我坐在这里时可能需要将Init放在外部div上)

尽管问题是,为什么不能只使用单元格和行,你具体需要索引进行什么操作。


谢谢您的回复。我正在尝试编写一个与Angular完全解耦的应用程序。我需要知道单元格被点击时所在的行和哪个单元格被点击了。 - spez86
顺便说一句,谢谢!这正是我在寻找的。而且你是对的,ng-init应该放在外部div上,以便它们可以分别传递。 - spez86
好的,我没有时间测试它,现在已经修复了示例,应该是正确的。 - Jens

2
<div class="row" ng-repeat="row in grid track by $index">
    <div cell class="cell" ng-repeat="cell in row track by $index" 
       ng-click="game.addItem(row, cell)">
        {{cell.value}}
    </div>
</div>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接