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

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

前言


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


图如下:

38826460582597dff6f590023684f9ef.png

adeb5f9144f5e3acf13233eed384c8db.png

大致就是图上的意思。




实现思路


  1.    一开始我和同事想的是表单没有清空,于是我们就开始操作表单。比如点击添加按钮的时候,清空表单,发现不行;每天添加完之后,清空表单,发现不行;弹框的时候清空表单,发现还是不行!


  1.    接着想到了关闭框的时候销毁对象,查找官方文档,发现了个属性:destroy-on-close,文档中定义是:关闭时销毁 Dialog 中的元素,boolean类型,默认是flase,于是我将值改成了true,发现还是不行。


  1.    从网上查了下,有人说用v-if,我加上了,还是不行~


  1.    后来同事用了个时间戳的方式,终于给解决了。




实现代码


本来我都给前端的朋友打电话了,问这个问题怎么解决,他给了我个方案,大致是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完美解决,记录记录不迷路~


目录
相关文章
|
6月前
|
前端开发
elementui解决el-dialog不清空内容的问题,el-dialog关闭时销毁子组件
elementui解决el-dialog不清空内容的问题,el-dialog关闭时销毁子组件
|
6月前
|
JavaScript
Vue给Element UI的el-popconfirm绑定按钮事件
Vue给Element UI的el-popconfirm绑定按钮事件
|
前端开发
饿了么el-dialog自定义内容以及el-dialog自定义样式
饿了么el-dialog自定义内容以及el-dialog自定义样式
468 0
|
JavaScript
VUE element-ui之el-form表单点击按钮自动增加表单(输入框),可新增删除
VUE element-ui之el-form表单点击按钮自动增加表单(输入框),可新增删除
2119 0
VUE element-ui之el-form表单点击按钮自动增加表单(输入框),可新增删除
|
JavaScript API 前端开发
vue中对el-dialog宽度调整方法之一二
vue时,会用到el-dialog做为弹窗,但这个弹窗的宽度默认为50%.因项目中需要调整弹偿的宽度,需要设置其属性。 尝试过程如下: 方法1: 通过查找 el-dialog的官网api,查到其有宽度width的属性,设置其宽度比例即可 width="85%",但经设置后,发现没起任何作用。
7701 0
|
3月前
|
JavaScript
vue element-ui 中el-message重复弹出问题解决 el-message重复弹出解决办法
vue element-ui 中el-message重复弹出问题解决 el-message重复弹出解决办法
231 49
|
2月前
|
JavaScript
ElementUI的el-dialog弹窗修改设置可拖拽可最大化
该方案通过自定义Vue指令实现ElementUI的`el-dialog`弹窗的拖拽和最大化功能。只需在`main.js`中引入并注册指令,然后在Vue组件中绑定指令即可。支持自定义参数控制是否允许最大化和拖拽,并提供最大化后的回调函数。具体使用方法详见示例代码。
214 0
ElementUI的el-dialog弹窗修改设置可拖拽可最大化
|
3月前
|
JavaScript 前端开发
怎样在vue中隐藏el-form-item中的值、设置输入框的值是只读
这篇文章介绍了在Vue框架中使用Element UI组件库时,如何通过v-if指令和v-model绑定来控制`el-form-item`的显示与隐藏,以及如何通过设置`readonly`属性让输入框变为只读状态。
怎样在vue中隐藏el-form-item中的值、设置输入框的值是只读
|
4月前
|
JavaScript API
【Element-UI】vue使用 this.$confirm区分取消与关闭,vue给this.$confirm设置多个按钮
【Element-UI】vue使用 this.$confirm区分取消与关闭,vue给this.$confirm设置多个按钮
547 0
|
6月前
|
小程序 JavaScript
小程序表单组件——button
小程序表单组件——button
67 0