使用AngularJS获取'ng-repeat'项的索引(计数器)?

时间:2014-03-11 19:46:33

标签: javascript angularjs indexing counter

我正在使用AngularJS及其ng-repeat指令来显示一系列问题。我需要以1开头的每个问题编号。如何使用ng-repeat显示和增加此类计数器?以下是我到目前为止的情况:

<ul>
    <li ng-repeat="question in questions | filter: {questionTypesId: questionType, selected: true}">
        <div>
            <span class="name">
                {{ question.questionText }}
            </span>
        </div>
        <ul>
            <li ng-repeat="answer in question.answers">
                <span class="name">
                    {{answer.selector}}. {{ answer.answerText }}
                </span>
            </li>
        </ul>
    </li>
</ul>

3 个答案:

答案 0 :(得分:49)

Angularjs文档中充满了示例,您只需要花些时间进行探索。

在此处查看此示例:ngRepeat example,情况相同。

<ul>
    <li ng-repeat="question in questions | filter: {questionTypesId: questionType, selected: true}">
        <div>
            <span class="name">
                {{$index + 1}} {{ question.questionText }}
            </span>
        </div>
        <ul>
            <li ng-repeat="answer in question.answers">
                <span class="name">
                    {{answer.selector}}. {{ answer.answerText }}
                </span>
            </li>
        </ul>
    </li>
</ul>

答案 1 :(得分:37)

通过搜索类似的东西到达这里。

这对我有用。

{{$index + 1}}
添加了

+1,因为索引从0开始。

答案 2 :(得分:4)

有两种方法可以在ng-repeat

中获取给定数组的索引

使用$ index

<th ng-repeat="n in [].constructor(3 + 1) track by $index">{{$index}}</th>

使用计数器

当你有嵌套的ng-repeat并且你需要两个循环的计数器时,这个方法很有用......下面的例子使用计数器行。虽然需要使用$ index跟踪,但它不用于逻辑。

<tr ng-repeat="(row, y) in getNumber(h.seats.length, 3) track by $index">
                    <td>{{row+1}}</td>

在这两种情况下,计数器从0开始,如果你愿意,可以使用+1进行偏移