แบบฟอร์มสำหรับแก้ไขอาร์เรย์ของวัตถุใน Vue
ตอนนี้เรามาลองทำการแก้ไของค์ประกอบของอาร์เรย์ของวัตถุกัน เราจะสร้างปุ่มสำหรับสิ่งนี้ เมื่อคลิกที่ปุ่มในรายการ รูปแบบสำหรับการแก้ไขจะปรากฏขึ้น หลังจากกรอกแบบฟอร์มเสร็จเราจะกดปุ่มบันทึก และการเปลี่ยนแปลงจะถูกบันทึกลงในอาร์เรย์ ในขณะที่แบบฟอร์มจะถูกซ่อนไป
มาเริ่มลงมือทำกันเถอะ ในอาร์เรย์ของวัตถุแต่ละวัตถุ เราต้องเพิ่มฟิลด์อีกหนึ่งฟิลด์ซึ่งเก็บสถานะของผู้ใช้ว่าจะแสดงผลหรืออยู่ในโหมดแก้ไข:
data() {
return {
users: [
{
id: 1,
name: 'name1',
surn: 'surn1',
isEdit: false,
},
{
id: 2,
name: 'name2',
surn: 'surn2',
isEdit: false,
},
{
id: 3,
name: 'name3',
surn: 'surn3',
isEdit: false,
},
]
}
}
เราจะแสดงเนื้อหาของอาร์เรย์ในรูปแบบของรายการ:
<template>
<ul>
<li v-for="user in users" :key="user.id">
{{ user.name }}
{{ user.surn }}
</li>
</ul>
</template>
ตอนนี้เราแยกโหมดแสดงผลและโหมดแก้ไขออกจากกัน:
<template>
<ul>
<li v-for="user in users" :key="user.id">
<template v-if="!user.isEdit">
{{ user.name }}
{{ user.surn }}
<button @click="edit(user)">
edit
</button>
</template>
<template v-else>
<input v-model="user.name">
<input v-model="user.surn">
<button @click="save(user)">
save
</button>
</template>
</li>
</ul>
</template>
เราจะปรับใช้เมธอด:
methods: {
edit(user) {
user.isEdit = true;
},
save(user) {
user.isEdit = false;
},
}
ปรับเปลี่ยนงานจากบทเรียนที่แล้ว เพื่อให้มีคอลัมน์ที่มีลิงก์สำหรับแก้ไขข้อมูลพนักงานแต่ละคน