vue中el-dialog弹窗关闭,子组件控制父组件
时间: 2023-08-18 11:11:31 浏览: 736
在Vue中,子组件可以通过事件的方式通知父组件关闭el-dialog弹窗。下面是一个示例:
在父组件中,使用v-model绑定一个变量来控制el-dialog的显示与隐藏:
```html
<template>
<div>
<el-button @click="showDialog = true">打开弹窗</el-button>
<el-dialog v-model="showDialog">
<child-component @closeDialog="showDialog = false"></child-component>
</el-dialog>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent,
},
data() {
return {
showDialog: false,
};
},
};
</script>
```
在子组件中,当需要关闭el-dialog时,触发一个自定义事件closeDialog,通知父组件关闭弹窗:
```html
<template>
<div>
<el-button @click="close">关闭弹窗</el-button>
</div>
</template>
<script>
export default {
methods: {
close() {
this.$emit('closeDialog');
},
},
};
</script>
```
在子组件中,通过`this.$emit('closeDialog')`触发了一个名为'closeDialog'的自定义事件,父组件中的`@closeDialog="showDialog = false"`监听到该事件后,将showDialog设置为false,从而关闭el-dialog弹窗。
这样,子组件就可以通过事件的方式控制父组件中的el-dialog弹窗的关闭。
阅读全文