elementui解决el-dialog不清空内容的问题,el-dialog关闭时销毁子组件

简介: elementui解决el-dialog不清空内容的问题,el-dialog关闭时销毁子组件


前言

现在是2022年5月5日22:48:21

今天在使用element-ui中的el-dialog的时候遇到了个这样的问题:页面上点击添加的按钮,弹出el-dialog对话框,该对话框中有个添加表单的子组件,然后填写值进行保存,点击保存按钮之后,el-dialog框关闭。继续点击添加的按钮,el-dialog框继续弹出,但是上次填写的表单内容没有清空。

图如下:

大致就是图上的意思。

实现思路

  1. 一开始我和同事想的是表单没有清空,于是我们就开始操作表单。比如点击添加按钮的时候,清空表单,发现不行;每天添加完之后,清空表单,发现不行;弹框的时候清空表单,发现还是不行!
  2. 接着想到了关闭框的时候销毁对象,查找官方文档,发现了个属性:destroy-on-close,文档中定义是:关闭时销毁 Dialog 中的元素boolean类型,默认是flase,于是我将值改成了true,发现还是不行。
  3. 从网上查了下,有人说用v-if,我加上了,还是不行~
  4. 后来同事用了个时间戳的方式,终于给解决了。

实现代码

本来我都给前端的朋友打电话了,问这个问题怎么解决,他给了我个方案,大致是el-dialog的显示时机和子组件的展示时机一样,这种方案没有试,不知道可行不可行,我们现在用的是下面这种写法:

在子组件的写如下代码:

<el-dialog
      title="新 增"
      :visible.sync="addDeviceDialogVisible"
      :append-to-body="true"
      top="1vh"
      width="70%"
      @destroy-on-close="true"
    >
      <addDevice
        :key="timer"
        @addDeviceResult="addDeviceResult"
        @quxiaoClickResult="quxiaoClickResult"
      ></addDevice>
    </el-dialog>

注意:重点就是:key="timer",这个关键代码。

然后在显示此el-dialog对话框的时候,给timer日期赋值,代码如下:

addDeviceBtn(){
      this.addDeviceDialogVisible = true;
      this.timer = new Date().getTime();
    },

bug完美解决,记录记录不迷路~

相关文章
|
UED
element el-cascader动态加载数据 (多级联动,落地方案)
最近需要用到element ui的这个插件做地区的四级联动,但是碰了一些问题: 官网的说明太泛泛然,不易看懂 网上的教程乱七八糟,代码一堆一堆的 看这篇就对了!!!
2417 0
element el-cascader动态加载数据 (多级联动,落地方案)
|
JavaScript
VUE element-ui之el-popover弹出框在局部全屏下不显示问题及弹框、小箭头背景修改
VUE element-ui之el-popover弹出框在局部全屏下不显示问题及弹框、小箭头背景修改
3314 0
VUE element-ui之el-popover弹出框在局部全屏下不显示问题及弹框、小箭头背景修改
|
数据格式
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
本文介绍了在ElementUI和ElementPlus中使用`el-table`组件实现合并行功能的技巧,包括多列合并和单列合并的方法,并提供了相应的示例代码和运行效果。
10089 46
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
|
JavaScript
在Vue中获取DOM元素的实际宽高
【10月更文挑战第2天】
1318 76
elementUI使用Pagination分页组件增加自定义slot
本文介绍了如何在Element UI的Pagination分页组件中使用自定义slot。通过在`el-pagination`标签内的适当位置添加slot内容,可以在分页组件中插入自定义的HTML或组件。文章提供了一个示例代码,展示了如何添加两个自定义slot,并展示了最终效果。
1744 4
elementUI使用Pagination分页组件增加自定义slot
|
JavaScript
成功解决:el-dialog弹出窗口、数据第一次没有加载、第二次打开才能加载数据。(每次页面刷新后、第一次打开dialog窗口、图片数不加载)
这篇文章分享了解决Vue中`el-dialog`弹出窗口在第一次打开时数据未加载问题的技巧,通过改变组件的`key`属性来强制Vue重新渲染DOM,从而确保数据正确加载。
成功解决:el-dialog弹出窗口、数据第一次没有加载、第二次打开才能加载数据。(每次页面刷新后、第一次打开dialog窗口、图片数不加载)
|
JavaScript
Vue项目如何生成树形目录结构
这篇文章介绍了如何在Vue项目中生成树形目录结构,通过安装并使用`mddir`命令行工具来创建一个`directoryList.md`文件,从而快速获取项目的树形目录列表。
Vue项目如何生成树形目录结构
|
JavaScript
ElementUI的el-dialog弹窗修改设置可拖拽可最大化
该方案通过自定义Vue指令实现ElementUI的`el-dialog`弹窗的拖拽和最大化功能。只需在`main.js`中引入并注册指令,然后在Vue组件中绑定指令即可。支持自定义参数控制是否允许最大化和拖拽,并提供最大化后的回调函数。具体使用方法详见示例代码。
2303 0
ElementUI的el-dialog弹窗修改设置可拖拽可最大化
|
前端开发
el-form-item label中的字体样式设置格式
这篇文章介绍了如何在Element UI的`el-form-item`组件中自定义`label`标签的样式,通过使用`slot`属性和内联CSS来改变字体颜色和加粗显示。
el-form-item label中的字体样式设置格式

热门文章

最新文章