ElementUI 官网对el-dialog内嵌问题提供的样例程序如下:
<el-dialog v-model="outerVisible" title="Outer Dialog">
<template #default>
<el-dialog
v-model="innerVisible"
width="30%"
title="Inner Dialog"
append-to-body
>
</el-dialog>
</template>
</el-dialog>
经过本地测试运行后主要存在两个问题
- el-dialog父组件无法正常显示
去掉<template></template>标签,并将v-model属性修改为:visible,父组件正常显示
<el-dialog v-model="outerVisible" title="Outer Dialog">
<el-dialog
:visible="innerVisible"
width="30%"
title="Inner Dialog"
append-to-body
>
</el-dialog>
</el-dialog>
- el-dialog子组件无法正常关闭
增加:before-close属性,在点击关闭按钮时同时将子组件置为不可见
<el-dialog v-model="outerVisible" title="Outer Dialog">
<el-dialog
:visible="innerVisible"
width="30%"
title="Inner Dialog"
append-to-body
:before-close="handleClose"
>
</el-dialog>
</el-dialog>
.......
handleClose(){
this.innerVisible=false;
}