elementui-自定表头和在input中遇见的问题

简介: elementui-自定表头和在input中遇见的问题

第一个问题:无法关闭 弹出框


<el-table :data="tableData" style="width: 100%">
  <el-table-column prop="date" label="金额" width="180">
    <template slot="header">
      <el-popover placement="top" width="160" v-model="visible">
        <div style="text-align: right; margin: 0">
          <input class="input" v-model="infoValue" />
          <el-button size="mini" type="text" @click="visible = false">取消</el-button>
          <el-button type="primary" size="mini" @click="okHander">确定</el-button>
        </div>
        <span slot="reference">
          <span>修改金额</span>
          <i class="el-icon-edit"></i>
        </span>
      </el-popover>
    </template>
  </el-table-column>
  <el-table-column prop="name" label="姓名" width="180">
  </el-table-column>
  <el-table-column prop="address" label="地址">
  </el-table-column>
</el-table>
<script>
new Vue({
  el: '#app',
  data: function() {
    return {
      visible: false,
      infoValue: '',
      tableData: [{
        date: '10',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, ]
    }
  },
  methods: {
    okHander() {
      //无法清除输入框中的值
      this.infoValue=''
      // 关闭弹窗
      this.visible = false;
    },
  }
})
</script>


1425695-20211108221202086-1787172434.gif

解决关闭弹窗办法


添加 ref="elpopoverRef",通过ref去关闭
<el-popover placement="top" ref="elpopoverRef" width="160" v-model="visible">
  <div style="text-align: right; margin: 0">
    <input class="input" v-model="infoValue" />
    <el-button size="mini" type="text" @click="visible = false">取消</el-button>
    <el-button type="primary" size="mini" @click="okHander">确定</el-button>
  </div>
  <span slot="reference">
    <span>修改金额</span>
    <i class="el-icon-edit"></i>
  </span>
</el-popover>
okHander() {
  // 关闭弹窗 失败
  // this.visible = false;
  //关闭弹窗 成功
  this.$refs.elpopoverRef.doClose()
},

1425695-20211108221210455-1068581719.gif

1425695-20211108221522684-1265780689.gif


解决清除输入框中的值


<el-popover ref="elpopoverRef" placement="top" width="160" v-model="visible">
  <div style="text-align: right; margin: 0">
    <input ref="inputIdDemo" class="input" v-model="infoValue" />
    <el-button size="mini" type="text" @click="visible = false">取消</el-button>
    <el-button type="primary" size="mini" @click="okHander">确定</el-button>
  </div>
  <span slot="reference">
    <span>修改金额</span>
    <i class="el-icon-edit"></i>
  </span>
</el-popover>
okHander() {
  // 关闭弹窗
  this.$refs.elpopoverRef.doClose();
  // 清除input框中的值,这样清除值会成功
  this.$refs.inputIdDemo.value=""
  //这样清除值会失败的哈
  this.infoValue='';
},


1425695-20211108221216433-1304109474.gif尾声


这个案例主要产生了两个奇怪的现象。


第一个就是通过this.visible = false;


无法关闭弹窗。


后来通过查询文档,通过


this.$refs.elpopoverRef.doClose();这样可以关闭弹窗


无法清除input框中的值。


最初我使用this.infoValue=''失败了


紧接着使用vue中的强制刷新但是失败了~


然后还使用了v-if来销毁input还是失败了


最后我只用ref重置value的值。没有想到竟然成功了


其实使用document.getElementById('xx').value=""


也可以将input中的值清空


所以:至于为什么会这样。我觉得应该是element-ui中的一个bug


遇见问题,多使用几种方式也许会有不一样的结果


相关文章
|
存储 SQL NoSQL
数据传输DTS同步问题之同步失败如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
前端开发 安全 数据安全/隐私保护
管理系统的按钮权限控制
【2月更文挑战第11天】
292 0
|
JavaScript 前端开发
Vue3解析markdown解析并实现代码高亮显示
Vue实现博客前端,需要实现markdown的解析,如果有代码则需要实现代码的高亮。 Vue的markdown解析库有很多,如markdown-it、vue-markdown-loader、marked、vue-markdown等。这些库都大同小异。这里选用的是marked,代码高亮的库选用的是highlight.js。
1383 0
Vue3解析markdown解析并实现代码高亮显示
|
前端开发 定位技术 API
二、前端高德地图、渲染标记(Marker)引入自定义icon,手动设置zoom
文章介绍了如何在前端使用高德地图API渲染标记(Marker),并引入自定义图标,同时展示了如何手动设置地图的缩放级别。
1651 1
|
10月前
|
XML 安全 Java
Spring Boot 怎么接入 Stripe 支付?
本文介绍了如何在 Spring Boot 应用中接入 Stripe 支付,提供了一个基本框架,并展示了处理 Webhook 的代码示例。通过捕获异常返回错误信息,成功处理事件则返回确认消息。作者 JustinNeil 在文中还提到可根据需求扩展更多功能,如订阅管理和优惠券应用等。
446 0
|
缓存 Java Nacos
nacos常见问题之无法注册如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
2610 7
|
NoSQL Unix 编译器
Golang协程goroutine的调度与状态变迁分析
文章深入分析了Golang中goroutine的调度和状态变迁,包括Grunnable、Gwaiting、Grunning和Gsyscall等状态,以及它们之间的转换条件和原理,帮助理解Go调度器的内部机制。
204 0
|
缓存 监控 Java
深入剖析JVM的OOM | 内存溢出如何影响JVM运行及应对策略
深入剖析JVM的OOM | 内存溢出如何影响JVM运行及应对策略
107011 1
|
网络协议
服务器端口被占用怎么解决
服务器端口被占用怎么解决
|
存储 移动开发 JavaScript
React18组件一键转换Vue3组件(持续更新中)
其实现在Vue也是很火的框架随着Vue3的诞生,博主其实最终目标是想整合一套React+一套Vue组件库在一起的,但是重写一遍React的组件很费工作量也不现实,因为我是单人开发,于是就萌生了写一个React组件转换Vue组件的工具,功能性将逐步开发更新到博客,喜欢的可以关注一下
1039 1
React18组件一键转换Vue3组件(持续更新中)