vue之$emit 获取返回值
使用场景:子组件调用父组件的方法并获取到父组件方法的返回值
1.子组件方法:
获取父组件的值,判断是否关闭弹框
handleConfirm() {
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
const data = Object.assign({}, this.form);
var success = false;
this.$emit('change', data, val => {
success = val
});
// 成功
if (success) {
this.showDialog = false;
}
});
},
2、父组件方法
第2个参数callback:函数,传值,false代表校验失败,不执行之后逻辑。
callback(false);
changeVariable(row, callback){
var data = JSON.parse(JSON.stringify(this.variableList));
if (this.variableIndex == -1) {
data.push(row);
} else {
data[this.variableIndex] = row;
}
//校验表格数据
if (!this.checkData(data)) {
this.$message.error('变量名称重复!');
// 回调数据,不保存
callback(false);
return false;
}
this.variableList = data;
// 回调数据,保存
callback(true);
},