el-dialog踩坑

4,077 阅读1分钟

最近项目中使用el-dialog时遇到一个问题,el-dialog的open事件不起作用。

代码如下:

<el-dialog
  ref="dialog"
  :close-on-click-modal="false"
  class="edit-dialog"
  :class="mtUpdataname === 'CONTRACT' ? 'hetong' : ''"
  v-if="visible"
  :visible.sync="visible"
  @open="open"
  width="80%"
  height="80%"
  :before-close="handleClose"
>
  <div slot="title" class="header-title">
    <span class="title-name">{{ data ? data.title : '提示' }}</span>
    <span class="title-tips">{{ data ? data.tips : '' }}</span>
  </div>
</el-dialog>

问题描述: 在点击打开dialog时open事件的断点没有进去。

问题原因: el-dialog标签上多了一个v-if,去掉v-if后open事件就可以进断点了。

看了element-ui的源码,是在visible为true时emit open事件,如果在标签上再加一个v-if后组件重新渲染了,visible就不起作用了,起作用的是v-if。