当我在ng-repeat中有一个ng-repeat时,有什么方法可以获得$ index吗?

时间:2015-01-25 14:36:03

标签: angularjs

我的应用程序曾经有过这段代码:

<div ng-click="getQuestion(q.number)
     ng-repeat="q in qs">{{ q.number }}</div>

它非常简单地显示<div>个,其中每个都包含一个问题编号,并且它有一个点击事件。在每次重复中,q还有5-6种其他用途,但为了简化我只是在上面显示。

现在我被要求将其更改为CSS:表格,其中包含5行,每行包含10列。为此,我使用了两个ng-repeats,其中一个在另一个内部,如下所示:

<div ng-repeat="i in [0,1,2,3,4]">
   <div ng-repeat="j in [0,1,2,3,4,5,6,7,8,9]">
      <div ng-click="getQuestion(qs[i * 10 + j + 1].number)">
        {{ qs[i * 10 + j + 1].number }}  
      </div>
   </div>
</div>

公式:qs[i * 10 + j + 1]给了我与之前q相同的结果。

然而在那个中间我需要多次访问qs [i * 10 + j + 1] 所以这个公式出现在很多不同的地方。

是否有某些方法可以使用ng-repeat或其他我可以简化的方法 这个。我读了关于$ index但是在这种情况下我需要像$ index这样的东西给我从外循环的位置。

2 个答案:

答案 0 :(得分:2)

您可以使用ngInit。它允许您为值定义别名 - 在本例中可以是外部索引。该文档有一个非常相似的例子。

答案 1 :(得分:1)

使用ng-init

<div ng-repeat="i in [0,1,2,3,4]">
    <div ng-repeat="j in [0,1,2,3,4,5,6,7,8,9]" ng-init="row=qs[i * 10 + j + 1]'">
          <div ng-click="getQuestion(row.number)">
            {{ row.number }}  
          </div>
    </div>
 </div>