Vue中实现 Message Box 中内容可以点击 并调用自定义组件

<template>  
  <div>  
    <h1>这是主页面</h1>  
    <a-component ref="aComponentRef" />  
    <el-button @click="showMessage">显示消息框</el-button>  
  </div>  
</template>  
  
<script>  
import AComponent from './a.vue';  
import { MessageBox } from 'element-ui';  
  
export default {  
  components: {  
    AComponent,  
    'el-message': MessageBox, // 注册el-message组件  
  },  
  methods: {  
    showMessage() {  
      // 在全局范围内定义一个处理点击事件的函数  
      window.handleLinkClick = () => {  
        this.open(); // 调用 open() 方法  
      };  
      MessageBox({  
        message: '<a href="#" onclick="handleLinkClick()">这是一个消息框</a>', // 使用原生的 onclick 事件来绑定点击事件到全局函数 handleLinkClick()  
        type: 'info', // 设置消息框类型为info  
        center: true, // 将消息框居中显示  
        showClose: true, // 显示关闭按钮  
        confirmButtonText: '确定',  
        cancelButtonText: '取消',  
        closeOnClickModal: true, // 点击模态框外部不关闭  
        callback: () => {  
          console.log('消息框被点击');  
        }, // 点击消息框触发的事件  
        dangerouslyUseHTMLString: true, // 使用HTML字符串渲染消息框内容  
      });  
    },  
    open() {  
      console.log('open()方法被触发');  
      // 在这里编写打开操作的逻辑  
      // 触发 <a-component /> 组件的方法或属性  
      // 关闭消息框的逻辑  
      MessageBox.close(); // 调用 MessageBox API 的 close 方法关闭消息框  
      this.$refs.aComponentRef.showModal(); // 假设 <a-component /> 组件有一个名为 showModal() 的方法  
    },  
  },  
};  
</script>

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值