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 validate poshytip 自定义样式
Nov 26 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
Dec 25 Javascript
js实现文件上传表单域美化特效
Nov 02 Javascript
JavaScript知识点整理
Dec 09 Javascript
BootStrap入门教程(二)之固定的内置样式
Sep 19 Javascript
Bootstrap框架实现广告轮播效果
Nov 28 Javascript
十分钟带你快速了解React16新特性
Nov 10 Javascript
微信小程序项目实践之验证码倒计时功能
Jul 18 Javascript
JavaScript实现图片上传并预览并提交ajax
Sep 30 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 Javascript
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
浅谈JS的二进制家族
May 09 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 dirname简单使用代码实例
2020/11/13 PHP
javascript全局变量封装模块实现代码
2012/11/28 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
采用call方式实现js继承
2014/05/20 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
Python itertools模块详解
2015/05/09 Python
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
Python基于locals返回作用域字典
2020/10/17 Python
文职个人求职信范文
2013/09/23 职场文书
大学军训自我鉴定
2013/12/15 职场文书
咖啡店自主创业商业计划书
2014/01/22 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
2015年维修工作总结
2015/04/25 职场文书
房产电话营销开场白
2015/05/29 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL