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 相关文章推荐
JQUERY THICKBOX弹出层插件
Aug 30 Javascript
jQuery中[attribute^=value]选择器用法实例
Dec 31 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 Javascript
浅谈JavaScript for循环 闭包
Jun 22 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
Jan 18 Javascript
jQuery实现导航回弹效果
Feb 27 Javascript
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
利用Three.js如何实现阴影效果实例代码
Sep 26 Javascript
浅析Vue.js中v-bind v-model的使用和区别
Dec 04 Javascript
vue中$nextTick的用法讲解
Jan 17 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
Nov 20 Javascript
Element Cascader 级联选择器的使用示例
Jul 27 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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
PHP连接access数据库
2015/03/27 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
2016/08/02 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
师说教学反思
2014/02/07 职场文书
四查四看剖析材料
2014/02/14 职场文书
房屋转让协议书
2014/04/11 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
小学教师读书活动总结
2014/07/08 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
质量负责人岗位职责
2015/02/15 职场文书