Vue中关闭el-dialog时如何销毁(之前各种方法都不行)
今天在写Vue时遇到一个用element-ui的dialog时,在一个页面有多个地方同时应用了同一个dialog,但是发现虽然设置了destroy-on-close=true的参数依旧无法让数据在销毁时候重置尝试了很多方法,包括在el-dialog上设置v-if,<el-dialog:title="title"v-if="centerDetailVisible":visible.sync="
·
今天在写Vue时遇到一个用element-ui的dialog时,在一个页面有多个地方同时应用了同一个dialog,但是发现虽然设置了destroy-on-close=true
的参数依旧无法让数据在销毁时候重置
尝试了很多方法,包括在el-dialog上设置v-if
,
<el-dialog
:title="title"
v-if="centerDetailVisible"
:visible.sync="centerDetailVisible"
:destroy-on-close="true"> //这样子是不行的
真的要重新渲染只能:
location.reload();
后来换一个思路,其实并不需要把el-dialog完全销毁,只要把数据重置一下就可以了,于是改成:
最终代码:
html:
<el-dialog
:title="title"
v-if="centerDetailVisible"
:visible.sync="centerDetailVisible"
@close="handleClose"
center
>
JavaScript:
handleClose(){
Object.assign(this.$data, this.$options.data())
},
用@close 方法,大功搞成。这样子以来,包括表单等七七八八的数据全部都重置了(ps:之前看其他文章试的:this.$data = this.$options.data();
也不好用
更多推荐
已为社区贡献1条内容
所有评论(0)