查了一下,还是不太会用,我需要傻瓜式讲解,所以自己记录一下
我需要做到的功能是:
父组件是柱形图,点击柱形图后出来子组件列表弹窗,每一行列表后面有个地图图标,点击图标之后子组件和父组件同时关闭
1.先控制子组件点击图标之后子组件自己的关闭,写了一个方法:
控制dialogVisible的true和false,
初始化的时候 dialogVisible: this.visible,是通过this.visible来控制的
子组件页面:
<template><el-dialogappend-to-body:before-close="close":close-on-click-modal="true":visible.sync="dialogVisible">
所以close方法是(close可以加在点击事件上)
close() {this.$emit("update:visible", false);},
close可以加在点击事件上
2.然后是子组件表格弹窗控制父组件柱形图弹窗
用子组件监听父组件,因为是点击图标之后关闭的弹窗,再点击事件里面调用
close() {this.$emit("update:visible", false);},hanldclick(item){this.close();this.$emit('closeChildDialog')}
子组件监听closeChildDialog ,绑定在父组件上,(在父组件里面写子组件的路径,在夫组件里面写这句,里面的fileVisible是父组件页面的点击事件控制子组件开合的,true和false控制),
@closeChildDialog='close',里面的close是一个方法,同子组件一样的方法
父组件页面:
<ChildDialog @closeChildDialog='close' v-if="fileVisible" :title="this.Secondtitle" :visible.sync="fileVisible"/>