0

dialog中有个<my-form :action="action">子组件,新增和编辑都会使用该组件,区别是传入的action分别是add和edit,现在遇到的问题是完成一次新增/编辑操作之后再次打开dialog的时候,表单中还残留着上一次填写的数据,有没有办法在dialog每次显示的时候根据action做一次“初始化”来清空一下data?

PS:如果不用dialog而是用路由,我是在每次进入路由的时候根据action做初始化的,dialog这不知该如何处理了,因为dialog始终都存在只是显示和隐藏,created、mounted等事件都无法保证在每次显示的时候触发。有人说在保存之后触发一个回调事件,可是也有可能填写表单之后不保存直接关闭对话框呀。这个需求在以往的函数式开发框架中是特别简单自然的事情,到了vue等数据驱动框架这却发现颇费脑筋,是我的思路不对吗?

mjjkf 5
2017-10-09 提问

查看全部 7 个回答

9
<el-dialog
  title="提示"
  :visible.sync="dialogVisible"

在dialog上面添加v-if='dialogVisible'

<el-dialog
  title="提示"
  :visible.sync="dialogVisible"
  v-if='dialogVisible'

这样就初始化了

推广链接