一. :destroy-on-close="true"的场景 有一种场景是我们有一个新建按钮,要求每次我们重新打开el-dialog都是干净的内容,所以我们每次点击按钮可能会用以下几种办法。 (1) 对使用的data数据进行重置 (2) 直接对包裹内容区域的dom(组件)使用v-if,销毁/重建dom节点(组件) (3) 使用:destroy-on-close="true", ...
3 </el-dialog> 如果不加destroy-on-close属性,当第一次打开该dialog时,我们可以从组件attachment的created中打印出一句话,关闭该dialog后,第二次打开时,就不会再打印该信息,证明对话框关闭后,内部组件依然存在,但是当加上destroy-on-close后,每次打开该对话框都会出现打印信息...
但文章里说的把el-dialog标签写在父组件不写在子组件就也可以让destroy-on-close生效,但实际测试过程中发现这种写法还是无法让元素消失,打开F12还是有元素存在,不是我们想要的效果。 经过测试发现,把el-dialog标签写在父组件不写在子组件再使用destroy-on-close属性,实际它只能初始化dialog组件内部包裹的子组件data数据!
Vue:elementUI el-dialog组件destroy-on-close套用el-form,el-dialog参数destroy-on-close,可以刷新里边的子元素如果套用el-form,需要换成v-if="visible",关闭对话框就销毁,打开对话框就重建表单,可以触发表单的created事件elementdestroy-on-close属性使用踩坑...
el-dialog 参数 destroy-on-close,可以刷新里边的子元素 如果套用el-form,需要换成v-if="visible",...
return { dialogVisible: true, value: '', } }, methods: { showDialog () { this.dialogVisible = !this.dialogVisible } } } </script> 二. 问题研究 1. destroy-on-close="true",文档说关闭时销毁 Dialog 中的元素 2. 由源码得到该属性会让class为el-dialog的dom节点重新生成。 (注意:key 的特...
[Bug Report] el-tabs in el-dialog with destroy-on-close=‘true’ ,dialog can't be closed 看表现应该是哪里陷入了死循环,猜测是el-tabs的render函数在无限执行。 为了证实这个猜测,我们直接在node_modules中el-tabs的render函数添加console。 image-20220814080300663 ...
destroy-on-close本身貌似也存在一些问题,不是真正的销毁。 最后找到了答案: <el-dialog class="tower" title="杆塔列表" :visible.sync="openTowerWindow" v-if="openTowerWindow" width="648px" :before-close="handleCloseTower" :append-to-body="true" ...
接着想到了关闭框的时候销毁对象,查找官方文档,发现了个属性:destroy-on-close,文档中定义是:关闭时销毁 Dialog 中的元素,boolean类型,默认是flase,于是我将值改成了true,发现还是不行。