0
代码
 this.$Modal.success({
        onOk: () => {
        },
        render: (h) => {
          return h('div',[
              h('Button', {
                on: {
                  click: () => {
                    // 我想在这里关闭当前的 Modal
                  }
                },
              }, '按钮'),
            ])
        }
      })

我想在 render 渲染的按钮的 click 事件下关闭当前的 Modal 请问应该怎么写呀?

西红柿 236
2019-05-25 提问

查看全部 4 个回答

0

已采纳
this.$Modal.success({
        onOk: () => {
        },
        render: (h) => {
          return h('div',[
              h('Button', {
                on: {
                  click: () => {
                      this.$Modal.remove()   //这句
                  }
                },
              }, '按钮'),
            ])
        }
      })
this.$Modal.success({
        title:'ahahhah',
        onOk: () => {
          
        },
        render: (h) => {
          return h('div',{
            attrs: {
                class:'modal1'  //modal1可以是动态的
            },
            },[
              h('Button', {
                on: {
                  click: () => {
                    let currModal = this.$el.parentNode.getElementsByClassName('modal1')[0]
                    currModal.offsetParent.offsetParent.offsetParent.offsetParent.parentElement.innerHTML=''  //移除mask DOM
                    currModal.offsetParent.offsetParent.offsetParent.offsetParent.innerHTML=''  //移除 ivu-modal DOM
                  }
                },
              }, '按钮'),
            ])
        }
      })
  只是这种方法比较粗暴 q(≧▽≦q),其他除了修改modal组件的原型之外(比较麻烦)暂时还没有想到其他方法。

推荐答案

1

通过调用实例方法创建的对话框, remove()方法是全局关闭,不支持传参指定关闭谁,如果需要多个弹窗,指定关闭弹窗,目前版本只能用基础用法:写成模板里面嵌套,通过变量控制关闭指定对话框

推广链接