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 相关文章推荐
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
Aug 23 Javascript
js arguments对象应用介绍
Nov 28 Javascript
javascript loadScript异步加载脚本示例讲解
Nov 14 Javascript
jQuery实现行文字链接提示效果的方法
Mar 10 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
Bootstrap Fileinput文件上传组件用法详解
May 10 Javascript
jQuery简单入门示例之用户校验demo示例
Jul 09 Javascript
javascript+html5+css3自定义弹出窗口效果
Oct 26 Javascript
基于wordpress的ajax写法详解
Jan 02 Javascript
Javascript Promise用法详解
May 10 Javascript
如何解决jQuery 和其他JS库的冲突
Jun 22 jQuery
微信小程序外卖选购页实现切换分类与数量加减功能案例
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简单生成缩略图相册的方法
2015/07/29 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
Javascript的闭包
2009/12/31 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python面向对象之继承代码详解
2018/01/29 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
python+pygame实现坦克大战
2019/09/10 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
tensorflow 实现数据类型转换
2020/02/17 Python
500行python代码实现飞机大战
2020/04/24 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
中科前程Java笔试题
2016/11/20 面试题
物流业务员岗位职责
2014/02/08 职场文书
《童年》教学反思
2014/02/18 职场文书
学生会主席竞聘书
2014/03/31 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
教师求职自荐书
2014/06/14 职场文书
银行求职自荐书
2014/06/25 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
会议简讯范文
2015/07/20 职场文书