Rumah > Soal Jawab > teks badan
Apabila menggunakan tatasusunan objek, adakah mungkin untuk menetapkan objek semasa secara serentak kepada pembolehubah dan memusnahkan sifatnya dalam gelung v-for
? Seperti ini:
<div v-for="(person = {name, age}, index) in persons">
Akhirnya saya mahu boleh menggunakan kedua-dua keseluruhan person
objek dan sifatnya dalam templat.
P粉1158400762023-11-06 15:56:06
Setahu saya, anda tidak boleh melakukan kedua-duanya pada masa yang sama.
Namun, anda boleh menyahkonstruknya, contohnya:
<div v-for="({name, age}, index) in persons">
Anda kemudian boleh mengakses elemen yang betul melalui indeks: persons[index]
.
Contoh:
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>