前段时间,在实现带输入建议并且支持模糊查询输入框的时候,发现了两个值得注意的小地方。整理出来,以供借鉴。
废话不多说,直接来解决问题。
踩坑问题描述:
问题一:
获取到后端返回的数组,并将数组传入作为 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 "text-align: center">![]()
debounce
?函数去抖
"htmlcode"><el-autocomplete placeholder="请输入DEVEUI" v-model="searchDeveuiVal" clearable :fetch-suggestions="querySearch" size="small" :debounce=0 @keyup.enter.native="searchAppNode"> </el-autocomplete>正确效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。