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 写的简单进度条控件
Jan 22 Javascript
javascript的onchange事件与jQuery的change()方法比较
Sep 28 Javascript
基于jquery的点击链接插入链接内容的代码
Jul 31 Javascript
js网页实时倒计时精确到秒级
Feb 10 Javascript
JQuery中DOM实现事件移除的方法
Jun 13 Javascript
JavaScript检测字符串中是否含有html标签实现方法
Jul 01 Javascript
jQuery ready()和onload的加载耗时分析
Sep 08 Javascript
node.js 利用流实现读写同步,边读边写的方法
Sep 11 Javascript
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 jQuery
JavaScript Date对象应用实例分享
Oct 30 Javascript
react-redux中connect的装饰器用法@connect详解
Jan 13 Javascript
在微信小程序中使用mqtt服务的方法
Dec 13 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一些服务器端特性的配置加强php的安全
2006/10/09 PHP
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
js实现文字截断功能
2016/09/14 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
微信小程序Redux绑定实例详解
2017/06/07 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
机器学习实战之knn算法pandas
2019/06/22 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
python 解决函数返回return的问题
2020/12/05 Python
水果连锁超市创业计划书
2014/01/24 职场文书
安全大检查反思材料
2014/01/31 职场文书
总经理人事任命书
2014/06/05 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
租车协议书
2015/01/27 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
个人欠条范本
2015/07/03 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS