背景是这样的,有一个input 的列表,里面会有n 个手动添加的input 标签,后台需要知道这些input 的值是否发生了变化,或者是新增的input 或者是删除了input ,其实最麻烦的就是如何监听多个input 的值,一开始是想用watch 方法监听 该属性值的变化
watch:{
'formData.task_list':{
handler(newName, oldName) { //特别注意,不能用箭头函数,箭头函数,this指向全局
},
immediate: true,
}
但是通过打印log ,发现newname,和oldname 的值都是同样的(两者都是集合),有没有知道的大神可以回答下,所以只有用另一种笨方法了,拷贝一份集合,最后通过最新的结合做比较,有过两个集合的某些字段对比不一致,就给该input 做上标记
watch:{
'formData.task_list':{
handler(newName, oldName) { //特别注意,不能用箭头函数,箭头函数,this指向全局
console.log("watch_data",this.formData.task_list)
var self=this;
if(this.formData.task_list.length>0){
if(!this.isSetOriginInfo){
this.copy_value_list= JSON.parse(JSON.stringify(this.formData.task_list));
console.log("我已经拷贝完了", this.copy_value_list)
this.isSetOriginInfo=true
}
}
}
},
immediate: true,
}
然后遍历两个列表比较不同的值