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()方法是全局关闭,不支持传参指定关闭谁,如果需要多个弹窗,指定关闭弹窗,目前版本只能用基础用法:写成模板里面嵌套,通过变量控制关闭指定对话框

0

clipboard.png
目前只有这一种方法

0

this.$Modal.success这种形式的弹窗不支持多个弹窗,所以可以直接使用this.$Modal.remove()
https://run.iviewui.com/hegoyNqE

撰写答案

推广链接