解决多个el-popover点击确定/取消时,popover的隐藏问题

注册ref,操作dom树关闭popver


我是利用v-for循环出的很多的tap,所以下面我使用了item.id去注册ref
在这里插入图片描述
popover里通过ref注册,itemv-for的循环标签元素

v-for="(item,index) in list" :key="index"
<el-popover
                placement="left"
                width="160"
                trigger="manual"
                :ref="refNamePopover+item.id"
                <p>这是一段内容确定删除吗?</p>
                <div style="text-align: center; margin: 0">
                  <el-button size="mini" type="text" @click="cancelDelete(item.id)">取消</el-button>
                  <el-button type="primary" size="mini" @click="deleteCurData(item.id)">确定</el-button>
                </div>
                <span slot="reference">删除</span>
                </el-button>
 </el-popover>

我将refName抽取出来,方便以后修改,只需要修改一处就好了

	data() {
		return {
			refNamePopover: 'popover-', // popover ref名称前缀
		};
	},

这是popover里面的方法,主要就是通过注册信息ref找到子组件,直接操作dom树,进行操作

methods: {
		// 取消删除
		cancelDelete(id) {
			let refName = this.refNamePopover + id;
			this.$refs[refName][0].doClose();
		},
		// 删除当前数据
		deleteCurData(id) {
			let refName = this.refNamePopover + id;
			console.log('删除当前数据', id);
			console.log('删除当前数据ref', this.$refs[refName]);
			// 通过操作dom树,关闭popover
			this.$refs[refName][0].doClose();
		},
	}

这里贴一下popover组件有哪些属性和方法
在这里插入图片描述

官网资料: ref
官网资料: refs

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值