el-popover使用doclose关闭窗口不生效
Vue在el-table中使用el-popover遇到的坑
el-table表格中使用el-popover打开和关闭失效的问题及解决过程 在 element-ui 中 el-table 中使用Popover弹框
<el-table-column> <template slot-scope="scope"> <el-popover placement="bottom" title="更多" width="100" trigger="click" :ref="`popover-${scope.$index}`"> <el-button type="primary" size="mini" @click="handleConfirm(scope)">确定</el-button> <el-button type="text" size="small" slot="reference">更多</el-button> </el-popover> </template> </el-table-column>
这里ref使用变量的形式,因为是多个循环的el-popover 这里需要点击确定来关闭el-popover窗口,发现如下代码不生效
handleConfirm(scope) { scope._self.$refs[`popover-${ scope.$index}`].doClose() scope._self.$refs[`popover-${ scope.$index}`].showPopper = false }
发现vue 不能检测到ref的值变化 不能触发视图更新,原因是表格中添加lazy 懒加载 通过如下代码解决
handleConfirm() { document.body.click() // 模拟点击页面其它部分关掉弹层,因为该页面列表使用懒加载导致doClose无效 }
下一篇:
基于人脸识别的考勤系统开发