小坑,记录一下:
我更改了某个属性,然后又复原的话,这样对象也是没有改变的
如果只是简单的监听watch肯定不行,每个属性进行判断也不尽人意,
首先想到的肯定是watch
先自定义一个对象formOrigin 赋值
错:this.formOrigin = this.form
对:this.formOrigin = Object.assign({},this.form)
watch监听(isEdit默认为true 没有更改)
form:{
handler(newValue,oldValue){
if(oldValue&&oldValue.id) {
for(let key in this.formOrigin) {
if(newValue[key]!= this.formOrigin[key]&&newValue[key]!='') {
this.isEdit = false
break;
}
else {
this.isEdit = true
}
}
}
},
deep:true,//只要当form中的值改变就会触发这个函数且,newValue,oldValue两个参数值相同;
}