时间:2021-05-28
前段时间,在实现带输入建议并且支持模糊查询输入框的时候,发现了两个值得注意的小地方。整理出来,以供借鉴。
废话不多说,直接来解决问题。
踩坑问题描述:
问题一:
获取到后端返回的数组,并将数组传入作为 results 传入 callback 后,焦点放在 输入框 上的时候,并未出现任何内容,只出现了一个不完整的空白框。
问题解决方案:
这个问题开始我以为是传进 callback 的 data 格式不对。Element官网上是这么写的:
我传入的是对象数组,是没问题的。
后来我仔细阅读了 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 官网的 Demo 代码并未阐述这种情况,就是当我获取到输入建议列表后,切换成另一个输入建议列表,会先闪一下上一个出现的输入建议列表,切换后的输入列表为空也会闪出上个输入建议列表,就算手动清空 callback(data:[]) 中的 data 数组也无济于事。
问题解决方案:
这个问题开始我以为是需要返回数据后手动清空 callback 里面的 data 数组,像下面这样:
//联想查询时触发 querySearch(queryString, callback) { var results = queryString ? this.devEuiArr.filter(this.createFilter(queryString)) : this.devEuiArr // 调用 callback 返回建议列表的数据 callback(results) results = '' }但是一点作用没起,也就是跟变量缓存没什么关系,后来我在 Element 官网的一个小角落发现这么一个参数:
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>正确效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
需求描述页面的查询框增加一下显示历史查找记录实现及踩坑记录使用Element带输入建议的输入框来实现此需求。用法详见官网1.坑1:不能直接在querySearc
背景今天发现输入框输入内容后回车就会刷新页面解决el-from加上@submit.native.prevent具体是参考element-ui文档解决的W3C标准
需求前端开发过程中,经常遇到表单校验的需求,比如校验用户输入框的内容,限制用户只能输入数字。本文内容基于element-ui,el-form组件可以绑定mode
本文来源于Element官方文档:http://element-cn.eleme.io/#/zh-CN/component/input基础用法带图标的输入框(属
一、问题描述:我们在输入银行账号会设置每四位添加一个空格,输入金额,每三位添加一个空格。那么,在vue,element-ui组件中,如何实现呢?二、效果图:三、