Maison > Questions et réponses > le corps du texte
Lors de l'utilisation d'un tableau d'objets, est-il possible d'attribuer simultanément l'objet actuel à une variable et de déstructurer ses propriétés dans une v-for
boucle ? Comme ça :
<div v-for="(person = {name, age}, index) in persons">
À terme, je veux pouvoir utiliser à la fois l'intégralité de l'objet person
et ses propriétés dans un modèle.
P粉1158400762023-11-06 15:56:06
À ma connaissance, on ne peut pas faire les deux en même temps.
Cependant, vous pouvez le déconstruire, par exemple :
<div v-for="({name, age}, index) in persons">
Vous pouvez ensuite accéder au bon élément via l'index : persons[index]
.
Exemple :
new Vue({ el: "#app", data: { todos: [{ text: "Learn JavaScript", done: false }, { text: "Learn Vue", done: false }, { text: "Play around in JSFiddle", done: true }, { text: "Build something awesome", done: true } ] }, methods: { toggle: function(index) { this.todos[index].done = !this.todos[index].done } } })
body { background: #20262E; padding: 20px; font-family: Helvetica; } #app { background: #fff; border-radius: 4px; padding: 20px; transition: all 0.2s; } li { margin: 8px 0; } h2 { font-weight: bold; margin-bottom: 15px; } del { color: rgba(0, 0, 0, 0.3); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <h2>Todos:</h2> <ol> <li v-for="({text, done}, i) in todos"> <label> <input type="checkbox" v-on:change="toggle(i)" v-bind:checked="done"> <del v-if="done"> {{ text }} </del> <span v-else> {{ text }} </span> {{todos[i]}} </label> </li> </ol> </div>