【问题标题】:Get the index (counter) of an 'ng-repeat' item with AngularJS?使用 AngularJS 获取“ng-repeat”项目的索引(计数器)?
【发布时间】:2014-04-15 14:49:52
【问题描述】:

我正在使用 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>

【问题讨论】:

    标签: javascript angularjs indexing counter


    【解决方案1】:

    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>

    【讨论】:

    • 那么答案是什么? :D
    • 因为这是公认的答案,我只是在这里评论它:同时使用ngIf 仍会增加​​$index,这在您的示例中不起作用。就像我想使用 ng-class="{ 'even': $index % 2 == 0 }" 之类的东西一样,如果有人知道如何喜欢听到它,尝试在不触摸控制器的情况下找到解决方法。
    • 对不起,我找不到你要解释的问题,你能提供一个小提琴吗?
    【解决方案2】:

    有两种方法可以在 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 进行偏移

    【讨论】:

    • 感谢您的解决方案。如果我们想倒计时,比如 5 -> 4 -> 3 等。我们将如何实现呢?谢谢
    • 如果我们想倒计时,你可以这样做: {{ r.length - $index }}
    【解决方案3】:

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

    这对我有用。

    {{$index + 1}}
    

    添加+1是因为索引从0开始。

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 1970-01-01
      • 2014-09-29
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多