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 相关文章推荐
判断是否输入完毕再激活提交按钮
Jun 26 Javascript
JavaScript的变量作用域深入理解
Oct 25 Javascript
分享14个很酷的jQuery导航菜单插件
Apr 25 Javascript
jQuery中:submit选择器用法实例
Jan 03 Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 Javascript
javascript遇到html5的一些表单属性
Jul 05 Javascript
JavaScript中数组添加值和访问值常见问题
Feb 06 Javascript
Js利用console计算代码运行时间的方法示例
Sep 24 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
May 18 Javascript
vue.js 实现输入框动态添加功能
Jun 25 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
详解Node.js使用token进行认证的简单示例
May 25 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 header 跳转
2013/06/17 PHP
解析yii数据库的增删查改
2013/06/20 PHP
php strnatcmp()函数的用法总结
2013/11/27 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
python查询sqlite数据表的方法
2015/05/08 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
python根据文本生成词云图代码实例
2019/11/15 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
python图形用户接口实例详解
2019/12/16 Python
详解python中的lambda与sorted函数
2020/09/04 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
鱼油专家:Omegavia
2016/10/10 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
"序列点" 是什么
2016/07/29 面试题
应届生服务员求职信
2013/10/31 职场文书
质量整改报告范文
2014/11/08 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
解析Java异步之call future
2021/06/14 Java/Android
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python