J'ai une ngFor
boucle simple qui garde également la trace du courant index
. Je souhaite stocker cette index
valeur dans un attribut afin de pouvoir l'imprimer. Mais je ne peux pas comprendre comment cela fonctionne.
J'ai essentiellement ceci:
<ul *ngFor="#item of items; #i = index" data-index="#i">
<li>{{item}}</li>
</ul>
Je veux stocker la valeur de #i
dans l'attribut data-index
. J'ai essayé plusieurs méthodes mais aucune n'a fonctionné.
J'ai une démo ici: http://plnkr.co/edit/EXpOKAEIFlI9QwuRcZqp?p=preview
Comment puis-je stocker la index
valeur dans l' data-index
attribut?
attr.
est une syntaxe pour indiquer à Angular2 de définir la valeur de l'expression sur le nom de l'attribut. Ce n'est pas juste comme évaluer JSON, je suppose ;-) Voir ce lien: angular.io/docs/ts/latest/guide/template-syntax.htmlngFor
sur leli
au lieu duul
.Dans Angular 5/6/7/8:
Dans les anciennes versions
Angular.io ▸ API ▸ NgForOf
Exemples de tests unitaires
Un autre exemple intéressant
la source
index as i
fonctionne très bien, merci. Mais le*ngFor
but n'est-il pas d'aller sur l'élément à répéter (par exemple le<li>
dans ce cas)? Le code que vous avez suggéré crée plusieurs<ul>
rameurs s que plusieurs<li>
s.index as i
est plus élégant quelet i = index
Juste une mise à jour, la réponse de Thierry est toujours correcte, mais il y a eu une mise à jour d'Angular2 en ce qui concerne:
Le
#i = index
devrait maintenant êtrelet i = index
MODIFIER / METTRE À JOUR:
Le
*ngFor
devrait être sur l'élément que vous souhaitez foreach, donc pour cet exemple, il devrait être:MODIFIER / METTRE À JOUR
Angulaire 5
EDIIT / UPDATE
Angulaire 7/8
la source
#item
devrait êtrelet item
;-)Je pense qu'il a déjà été répondu auparavant, mais juste une correction si vous remplissez une liste non ordonnée, le
*ngFor
viendra dans l'élément que vous souhaitez répéter. Il devrait donc être insidieux<li>
. De plus, Angular2 utilise désormais let pour déclarer une variable.la source
Les autres réponses sont correctes mais vous pouvez
[attr.data-index]
tout à fait omettre et simplement utiliserla source
Vous pouvez utiliser [attr.data-index] directement pour enregistrer l'index dans l'attribut data-index qui est disponible dans les versions Angular 2 et supérieures.
la source
Essaye ça
la source
avec pagination laravel
la source