Element输入框带历史查询记录的实现示例


Posted in Javascript onJanuary 15, 2019

需求描述

页面的查询框增加一下显示历史查找记录

Element输入框带历史查询记录的实现示例

实现及踩坑记录

使用Element带输入建议的输入框来实现此需求。用法详见官网

1. 坑1:不能直接在querySearch里返回数组,一定要调用回调函数cb来处理数据

看了一下例子,建议列表应该是个数组,然后我就在querySearch里直接返回了一个数组:

querySearch(queryString, cb) {
  return JSON.parse(localStorage.getItem('srcOrderNoArr'))
 },

但是回到网页上却发现列表数据加载不出来

正确姿势:

/**
 * 建议列表
 */
querySearch(queryString, cb) {
 // 调用 callback 返回建议列表的数据
 cb(JSON.parse(localStorage.getItem('srcOrderNoArr')))
}

2. 坑2:数组内数据格式有要求,格式一定要是[{value: '', xxx: ''}, {value: '', xxx: ''}, ...]

这个建议列表是根据数组内的value属性值来渲染的,所以数组内的对象一定要有value键值对。比如说是这样的:

data () {
  return {
    srcOrderNoArr: [{
      value: '', // 这个必须要有
      type: ''
    },
    {
      value: '',
      type: ''
    },
    {
      value: '',
      type: ''
    }]
  }
}
methods: {
  /**
   * 把搜索记录存入localStorage
   */
  setIntoStorage (type) {
   let self = this
   let noArr = [], // 订单号历史记录数组
    text = '', value = ''
   switch (type) {
    case 'srcOrderNo':
     text = 'srcOrderNoArr'
     value = self.srcOrderNo
     break
    case 'jobOrderNo':
     text = 'jobOrderNoArr'
     value = self.jobOrderNo
     break
    case 'cntNo':
     text = 'cntNoArr'
     value = self.cntNo
     break
    default:
     break
   }
   noArr.push({value: value, type: type})
   if(JSON.parse(localStorage.getItem(text))) { // 判断是否已有xxx查询记录的localStorage
    if(localStorage.getItem(text).indexOf(value) > -1 ) { // 判断是否已有此条查询记录,若已存在,则不需再存储
     return
    }
    if(JSON.parse(localStorage.getItem(text)).length >= 5) {
     let arr = JSON.parse(localStorage.getItem(text))
     arr.pop()
     localStorage.setItem(text, JSON.stringify(arr))
    }
    localStorage.setItem(text, JSON.stringify(noArr.concat(JSON.parse(localStorage.getItem(text)))))
   }
   else { // 首次创建
    localStorage.setItem(text, JSON.stringify(noArr))
   }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery的一些特性和用法整理小结
Jan 13 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
Apr 07 Javascript
JQuery中如何传递参数如click(),change()等具体实现
Apr 28 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
Oct 26 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
微信小程序商品到详情的实现
Jun 27 Javascript
vue教程之toast弹框全局调用示例详解
Aug 24 Javascript
浅谈JavaScript中的属性:如何遍历属性
Sep 14 Javascript
详解jQuery如何实现模糊搜索
May 10 jQuery
vue 解决computed修改data数据的问题
Nov 06 Javascript
js实现滚动条自动滚动
Dec 13 Javascript
微信小程序实现多选删除列表数据功能示例
Jan 15 #Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
Jan 15 #Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
Jan 15 #Javascript
微信 jssdk 签名错误invalid signature的解决方法
Jan 14 #Javascript
详解从react转职到vue开发的项目准备
Jan 14 #Javascript
node全局变量__dirname与__filename的区别
Jan 14 #Javascript
微信小程序时间轴实现方法示例
Jan 14 #Javascript
You might like
德生BCL3000的电路分析和打磨
2021/03/02 无线电
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
python中bytes和str类型的区别
2019/10/21 Python
python实现一个猜拳游戏
2020/04/05 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
python 两种方法删除空文件夹
2020/09/29 Python
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
优秀小学生家长评语
2014/01/30 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
离婚案件被告代理词
2015/05/23 职场文书
开场白怎么写
2015/06/01 职场文书
草房子读书笔记
2015/06/29 职场文书
《正比例》教学反思
2016/02/23 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript