热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

控制elementUI的Popover弹出框显示OR隐藏

控制elementUI的Popover弹出框显示OR隐藏-认识Popover组件先来个基础版的Popover组件,具体属性可以查看官网

认识Popover组件

先来个基础版的Popover组件,具体属性可以查看官网

"right"
  hljs-string">"400"
  trigger="click">
  <span>demospan>
  <el-button slot="reference">click 激活el-button>

这时候的组件,当点击组件外时会自动关闭组件。

项目问题

但有的时候这个特性会变的比较烦人。例如,当我这个组件里嵌套一个选择器,代码如下:

"right"
  hljs-string">"400"
  trigger="click">
  <section>
    <span>状态:span>
    <el-select v-model="chooseStatus"
      placeholder="请选择"
    >
      <el-option v-for="item in statusList"
      :key="item.value"
      :label="item.value"
      :value="item.key">
        el-option>
    el-select>
  section>
  <el-button slot="reference">click 激活el-button>

这个时候如果我点击下拉选项,就会自动关闭弹出框,因为下拉选项是在弹出框外围的。 但我的产品告诉我,我们需要使用保存按钮(不懂为啥),所以选完选项不能关闭弹出窗。那就需要改进我们的代码了,仔细研读了下官方文档,发现了triggervisible两个属性,解了我燃眉之急。

trigger:弹出窗的触发方式,可选值click/focus/hover/manual visible:控制弹出窗是否显示,搭配trigger:manual生效

加上以上两位,我的代码改成如下:

"bottom"
  trigger="manual"
  :visible="isShowPopover"
  hljs-string">"400">
  <div class="popoverWrap">
    <section>
     <span>状态:span>
     <el-select v-model="chooseStatus"
       placeholder="请选择"
     >
       <el-option v-for="item in statusList"
         :key="item.value"
         :label="item.value"
         :value="item.key">
       el-option>
      el-select>
     section>
     <section>
       <el-button type="primary"
         @click="updateStatus();isShowPopover = false">保存el-button>
       <el-button @click="isShowPopover = false">取消el-button>
     section>
    div>
  <template v-slot:reference>
    <span type="text" class="handleSpan"
      @click="isShowPopover = true">
      状态
	  span>
  template>

正式将控制弹出框显示隐藏的任务交给了两个按钮(控制isShowPopover的值),至此问题成功解决了。


推荐阅读
author-avatar
arashilan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有