我的应用程序曾经有过这段代码:
<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这样的东西给我从外循环的位置。
答案 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>