[Vue] element表格中使用el-popover弹窗编辑内容保存和取消的doClose无效解决办法

[Vue] element表格中使用el-popover弹窗编辑内容保存和取消的doClose无效解决办法_第1张图片

解决办法 一 

在el-popover中加属性:

 :ref="`popover-${scope.$index+ scope.column.id}`"  

 

隐藏弹窗方法:  

@click="this.$refs[`popover-${scope.$index+ scope.column.id}`].doClose()"

// 或 @click="scope._self.$refs[`popover-${scope.$index+ scope.column.id}`].doClose()"

// * 其中 $index是行, column.id是列. 两个参数相加才能创建真实唯一的popover的ref标记.

// * 其中 scope._self.$refs 和 this.$refs 是一样的, 推荐使用this.$refs 

原理:  利用ref解决, 也就是給每一个popover标记上ref就可以通过doclose方法隐藏对应的弹窗组件.

解决办法 二

如果以上方法无效, 执行doclose()打印是undefined. 那么直接模拟点击页面其他地方, 弹窗也会消失.

@click="document.body.click()"
* 这个操作的话不需要添加ref了

你可能感兴趣的:(Vue,各种坑,web前端)