J'utilise AngularJS et ses ng-repeat
directive pour afficher une séquence de questions. Je dois numéroter chaque question en commençant par 1
. Comment afficher et incrémenter un tel compteur avec ng-repeat
? Voici ce que j'ai jusqu'à présent:
<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>
La documentation d'Angularjs regorge d'exemples, il vous suffit de prendre le temps de l'explorer.
Voir cet exemple ici: exemple ngRepeat , c'est le même cas.
<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>
Atteint ici en recherchant quelque chose de similaire.
Voici ce qui a fonctionné pour moi.
{{$index + 1}}
+1 est ajouté car l'index commence à 0.
Il y a deux façons d'obtenir un index pour le tableau donné dans ng-repeat
<th ng-repeat="n in [].constructor(3 + 1) track by $index">{{$index}}</th>
Cette méthode est utile lorsque vous avez imbriqué ng-repeat et que vous avez besoin de compteurs pour les deux boucles ... L'exemple suivant utilise la ligne de compteur. Bien que le suivi par $ index soit requis, il n’est pas utilisé pour la logique.
<tr ng-repeat="(row, y) in getNumber(h.seats.length, 3) track by $index">
<td>{{row+1}}</td>
Dans les deux cas, le compteur commence par 0 et vous pouvez utiliser +1 si vous le souhaitez.