Comment puis-je répéter une boucle via v-for
X (par exemple 10) fois?
// want to repeat this (e.g.) 10 times
<ul>
<li v-for="item in shoppingItems">
{{ item.name }} - {{ item.price }}
</li>
</ul>
La documentation montre:
<ul>
<li v-for="item in 10">{{ item }}</li>
</ul>
// or
<li v-for="n in 10">{{ n }} </li>
// this doesn't work
<li v-for="item in 10">{{ item.price }}</li>
mais d'où la vue connaît-elle la source des objets? Si je le rend comme le dit le document, j'obtiens le nombre d'éléments et d'éléments, mais sans contenu.
javascript
vue.js
vuejs2
v-for
MikeCaine
la source
la source
v-for
; quand il est appelé contre un entier, et quand il est appelé contre un tableau. Mélanger ces modes et essayer d'utiliser un entier pour contrôler l'accès au contenu d'un tableau est susceptible de poser des problèmes. Si vous avez besoin d'un sous-ensemble du tableau, vous pouvez le filtrer.Réponses:
Vous pouvez utiliser un index dans une plage puis accéder au tableau via son index:
Vous pouvez également consulter la documentation officielle pour plus d'informations.
la source
<span v-for="i in 5">{{i}} </span>
=>1 2 3 4 5
. Utilisez<span v-for="(e, i) in 5">{{i}} </span>
pour obtenir une indexation 0.Je l'ai résolu avec l'aide de Dov Benjamin comme ça:
Et une autre méthode, pour les deux V1.x et 2.x de vue.js
la source
J'ai dû ajouter
parseInt()
pour dire à v-car il cherchait un nombre.<li v-for="n in parseInt(count)" :key="n">{{n}}</li>
la source
Vous pouvez utiliser la méthode de tranche JS native:
<div v-for="item in shoppingItems.slice(0,10)">
Basé sur l'astuce du guide de migration: https://vuejs.org/v2/guide/migration.html#Replacing-the-limitBy-Filter
la source
Il en va de même pour v-for in range :
<li v-for="n in 20 " :key="n">{{n}}</li>
la source
Dans la version 2.2.0+, lors de l'utilisation de v-for avec un composant, une clé est désormais requise .
La source
la source