已修改——
原因:页面初始化时,有些表单元素可能会被赋予初始值,此时就会触发change事件,有可能执行一些错误操作
思路1:运用一个标记决定是否执行change操作
本方法已不推荐!!!请勿使用,待更新其他方法
设置初始为不执行
data() {
return {
changeFlag: false
}
},
在触发的change函数里,通过判断标志,确认是否执行操作
methods: {
deptChange(val) {
//标志为true时才执行操作,即 修改选项时才触发change联动
if (this.changeFlag) {
console.log('触发change值', val)
// 修改选项时操作
this.form.xxx = xxx
}
//初始化,不做任何数据操作,为了下一次的执行,把change标志变为true
else {
this.changeFlag = true;
}
}
}
思路2:在初始化函数,例如initForm中,寻找change函数初始化时触发的位置(即赋值语句),将赋值前的正确数据,重新赋给赋值后的错误数据,例如:
this.$set(this,'list', JSON.parse(JSON.stringify(this.form.problemList)));
this.$nextTick(()=>{
this.list.forEach((item ,index)=>{
item.isRelevanceContractor = this.form.problemList[index].isRelevanceContractor
})
});