有时候要监听对象的变化。 我一般用来做一堆input 表单里面条件是否达到,然后按钮的颜色变化。
data: {
return: {
form: { // 这里面暂时不处理对象格式。如{ a:'',b: '' }
name: '',
tel: '',
product_value: [], // 产品数组第一个是第一级,第二个是第二级。
product_label: '', //产品选择选择对应的文字
xinghao_value: '', // 型号的值
xinghao_label: '', // 型号的名字
guige_value: '', // 规格的值
guige_label: '', // 规格的名字
order_size: '', // 订单编号
reason: '', // 原因
},
}
}
watch:{
form:{//深度监听,可监听到对象、数组的变化
handler(val, oldVal){
console.log(val);//但是这两个值打印出来却都是一样的
var canSubmit = false
for(var key in val){
if(typeof val[key] == 'boolean'){
if(!val[key]){
canSubmit = false
break
}else{
canSubmit = true
}
}else{
if(!val[key].length>0){
canSubmit = false
break
}else{
canSubmit = true
}
}
}
this.canSubmit = canSubmit
},
deep:true
}
},