第一张图片,无需单击“编辑”
单击“编辑”时的第二张图片
在这里,当我单击哪个编辑按钮时,循环中的所有任务加上它所在的部分将被隐藏,否则部分将显示,但我想在单击编辑按钮时隐藏特定任务。谁能帮我吗?
{{ tasks.Task }}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
观察:
isEditing是代码中的罪魁祸首。因为isEditing是一个包含boolean值的全局变量。因此,在编辑时,您将更新 isEditing 的值,这会影响所有任务。解决方案:您可以在 Task 数组的每个对象中添加 isEditing,而不是全局定义 isEditing。这样您就可以只更新单击任务的值,而不是为每个任务更新。
您的模板代码将是:
而不是
使用索引代替布尔值来进行
isEditing:Vue.component('child', { template: `
`,
data(){
return{
newTaskTitle: "",
isEditing : null
}
},
props:{
Task:{
type:Array,
required: true
},
},
methods:{
removeTask(idx){
console.log(idx)
this.$emit('remove', idx);
},
EditTaskI(tsk, i){
this.task = tsk;
this.isEditing = i;
this.newTaskTitle = this.task;
},
TaskUpdated(indx){
this.Index = indx
this.$emit('update',this.Index,this.newTaskTitle);
this.isEditing = null;
},
taskContentChange(e){
this.newTaskTitle = e.target.value;
}
}
})
new Vue({
el: "#demo",
data(){
return{
tasks: [{Task: 'aaa'}, {Task: 'bbb'}, {Task: 'ccc'}],
}
},
methods: {
updateTasks(i, name) {
this.tasks[i].Task = name
},
removeTask(i) {
this.tasks.splice(i, 1)
}
}
}){{ tasks.Task }}