Elementui如何让dialog每次弹出时重新加载

最近的一个需求中,有一个el-dialog比较庞大,里面有表格,筛选框和一些按钮,我就想把这个dialog单独写成一个子组件,在组件内单独请求数据,但我发现这样dialog每次只会加载一次

//父组件
<div>
  <myDialog></myDialog>
</div>
//子组件
<template>
    <el-dialog></el-dialog>
</template>

我想的是在子组件dialog的mounted中请求表格数据,这个子组件每次都只挂载一次,该怎么改动呢??

阅读 21k
5 个回答

给个v-if判断一下可以吗,想要打开这个dialog,不是给他设置一个属性为true才能显示嘛
这样的在调用组件的时候

<myDialog v-if="控制dialog显示的属性"></myDialog>

每次打开那个dialog的时候都会加载

在close回调事件中重置数据

2楼的你可以试试,看看行不行,不行的话。可以试试我的办法,包 管用,好使

方案:
watch一下el-dialog的visible属性值,如果为true,加载数据

比如:visible的值是dialogStatu,获取数据的方法是getData

watch: {
    dialogStatu(val) {
        val && this.getData();
    }
}

你仔细查看element ui文档,首先在dialog上又个open事件,就是打开的时候执行事件,你只要把你的getData函数放在open事件中,只要开启就会自动执行你的getData事件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题