Vue子组件向父组件传值(this.$emit()方法)
子组件使用this.$emit()向父组件传值首先必须在父组件中引用子组件,然后实现传值第一步 在父组件中引入子组件使用import引入组件import indexImportOrder from './components/indexImportOrder'声明//定义组件components:{indexImportOrder,},使用<indexImportOrder ref="ind
·
子组件使用this.$emit()向父组件传值
首先必须在父组件中引用子组件,然后实现传值
第一步 在父组件中引入子组件
- 使用import引入组件
import indexImportOrder from './components/indexImportOrder'
- 声明
//定义组件
components:{
indexImportOrder,
},
- 使用
<indexImportOrder ref="indexImportOrder"/>
第二步 子组件向父组件传值
1. 在子组件中需要向父组件传值处使用this.$emit("function",param); //其中function为父组件定义函数,param为需要传递参数
//新订单页面跳转
viewBusiness(){
let flag = false;
this.$emit('closeMain',flag);
},
2. 在父组件中子组件引用处添加函数v-on:function="function1"; //其中function为子组件中定义函数,function1为父组件定义函数--用于接收子组件传值并进行相应数据处理,可定义为同一名称
v-on: 可用 @ 代替 @function="function1" ,@ 为 v-on:的简写
<indexImportOrder ref="indexImportOrder" v-on:closeMain="closeMain"/>
val及为子组件中flag,即接收的子组件参数
closeMain(val){
this.flag = val;
},
项目应用:
点击选择按钮弹出module框,如图:
在模态框选择一个列表,确定后将值传入父页面。
主要代码实现:
父页面:
<rlzy-hmc-gwxsdzb-modal ref="modalGwxsdzbForm" @ok="modalFormCxOk"></rlzy-hmc-gwxsdzb-modal>
<a-form-item label="工资系数" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input-search v-decorator="['gwxs', validatorRules.gwxs]" placeholder="请选择工资系数" enter-button="选择" size="default" @search="onSearch" />
</a-form-item>
modalFormCxOk(data) {
this.model.gwxs = data.gwxs;
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'gwxs'))
})
},
onSearch(){
this.$refs.modalGwxsdzbForm.visible=true;
}
子页面主要代码:
<j-modal
:title="title"
width="100%"
:visible="visible"
:maskClosable="false"
switchFullscreen
destroyOnClose
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel">
handleOk(){
var data={};
if (this.selectedRowKeys.length <= 0) {
this.$message.warning('请选择一条记录!');
return;
}else{
for (var a = 0; a < this.selectedRowKeys.length; a++) {
data= this.selectionRows[a];
}
this.$emit("ok",data);
this.onClearSelected();
this.visible = false;
}
},
更多推荐
已为社区贡献1条内容
所有评论(0)