【问题标题】:What would be the best way to track by $index in nested ng-repeat?在嵌套的 ng-repeat 中通过 $index 跟踪的最佳方法是什么?
【发布时间】:2014-06-27 15:35:05
【问题描述】:

我有以下 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 和第二个中按索引进行跟踪,以便将它们传递给 addItem()。什么是通过它们的最佳方式?

【问题讨论】:

  • 我没有尝试过,但 $index 是否放在变量上,即 row.$index cell.$index - 为什么不直接传递行和单元格?

标签: javascript angularjs angularjs-ng-repeat


【解决方案1】:

我相信你可以做到:

<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 上进行,我坐在这里想不起来了)

虽然问题会问,为什么你不能只使用单元格和行,你具体需要索引做什么。

【讨论】:

  • 感谢您的回复。我正在尝试编写一个与角度完全解耦的应用程序。我需要知道点击了单元格的哪一行以及点击了哪个单元格。
  • 顺便说一句,谢谢!这正是我一直在寻找的。你是对的,ng-init 应该放在外部 div 上以便它们单独传递。
  • 好的,没有时间测试它,现在修复了这个例子,所以它应该是正确的。
【解决方案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>

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 2016-05-05
    • 2017-04-12
    • 2023-04-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多