element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)


Posted in Javascript onJanuary 15, 2019

前段时间,在实现带输入建议并且支持模糊查询输入框的时候,发现了两个值得注意的小地方。整理出来,以供借鉴。

废话不多说,直接来解决问题。

踩坑问题描述:

问题一:

获取到后端返回的数组,并将数组传入作为 results 传入 callback 后,焦点放在 输入框 上的时候,并未出现任何内容,只出现了一个不完整的空白框。

element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题) 

问题解决方案:

这个问题开始我以为是传进 callbackdata 格式不对。Element官网上是这么写的:

element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)

我传入的是对象数组,是没问题的。

后来我仔细阅读了 Elemen t带建议查询输入框的 Demo 代码并查阅相关资料发现,输入建议列表的数据只来源于
data:[] 中的 value 字段!!!

于是,我将后端传回的 response 处理了,将 response 中需要展示的字段组成 {value:'输入建议'} 这种格式,问题解决。

searchAppNodeApi(searchQuery).then((response) => {
     this.loadAll = response.data
     this.devEuiArr = [];
     for (var i = 0; i < this.loadAll.length; i++) {
      this.devEuiArr.push({"value1": this.loadAll[i].dev_eui})
     }
    })

searchAppNodeApi() 是我请求后端的api方法,拿到请求成功的回调函数的 response 参数。但是, response 里面包含很多我不需要的字段,我只需要其中的 dev_eui 字段。因此,循环 response.data 将其中每条的 dev_eui 重组成 {value:'输入建议'} 的格式并 push 进声明的新数组 devEuiArr

打印如下:

element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)

正确效果如下:

element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)

问题二:

成功出现输入建议列表后,出现一个新的问题,并且 Element 官网的 Demo 代码并未阐述这种情况,就是当我获取到输入建议列表后,切换成另一个输入建议列表,会先闪一下上一个出现的输入建议列表,切换后的输入列表为空也会闪出上个输入建议列表,就算手动清空 callback(data:[]) 中的 data 数组也无济于事。

element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)

问题解决方案:

这个问题开始我以为是需要返回数据后手动清空 callback 里面的 data 数组,像下面这样:

//联想查询时触发
   querySearch(queryString, callback) {
    var results = queryString ? this.devEuiArr.filter(this.createFilter(queryString)) : this.devEuiArr
    // 调用 callback 返回建议列表的数据
    callback(results)
    results = ''
   }

但是一点作用没起,也就是跟变量缓存没什么关系,后来我在 Element 官网的一个小角落发现这么一个参数:

element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)

debounce函数去抖 ? 应该就是它了!
(PS:不了解函数去抖和函数节流的同学可以阅读我的下一篇博文。)

debounce 的默认值是 300ms,我们将其设置为 0ms。

<el-autocomplete
     placeholder="请输入DEVEUI"
     v-model="searchDeveuiVal"
     clearable
     :fetch-suggestions="querySearch"
     size="small"
     :debounce=0
     @keyup.enter.native="searchAppNode">
 </el-autocomplete>

正确效果如下:

element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题) 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Ucren Virtual Desktop V2.0
Nov 07 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
Sep 05 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
Aug 01 Javascript
jquery制作居中遮罩层效果分享
Feb 21 Javascript
简单实现js间歇或无缝滚动效果
Jun 29 Javascript
关于Vue.js一些问题和思考学习笔记(2)
Dec 02 Javascript
jQuery阻止移动端遮罩层后页面滚动
Mar 15 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
微信小程序 如何引入外部字体库iconfont的图标
Jan 31 Javascript
vue通过过滤器实现数据格式化
Jul 20 Javascript
react-intl实现React国际化多语言的方法
Sep 27 Javascript
Vue3 响应式侦听与计算的实现
Nov 11 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
Jan 15 #Javascript
微信 jssdk 签名错误invalid signature的解决方法
Jan 14 #Javascript
详解从react转职到vue开发的项目准备
Jan 14 #Javascript
node全局变量__dirname与__filename的区别
Jan 14 #Javascript
微信小程序时间轴实现方法示例
Jan 14 #Javascript
浅谈webpack devtool里的7种SourceMap模式
Jan 14 #Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 #Javascript
You might like
PHP MSSQL 存储过程的方法
2008/12/24 PHP
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
Vuex简单入门
2017/04/19 Javascript
浅谈Node 调试工具入门教程
2018/03/20 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
js实现网页随机验证码
2020/10/19 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
python动态加载变量示例分享
2014/02/17 Python
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
解决python报错MemoryError的问题
2018/06/26 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
情况说明书格式范文
2014/05/06 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
昆虫记读书笔记
2015/06/26 职场文书
运动会新闻稿
2015/07/17 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
python实现Nao机器人的单目测距
2021/09/04 Python
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL