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 相关文章推荐
prototype 1.5 & scriptaculous 1.6.1 学习笔记
Sep 07 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
Dec 27 Javascript
通过遮罩层实现浮层DIV登录的js代码
Feb 07 Javascript
js判断文本框输入的内容是否为数字
Dec 23 Javascript
JQuery实现简单的服务器轮询效果实例
Mar 31 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
Aug 02 Javascript
angularjs中$http异步上传Excel文件方法
Feb 23 Javascript
JS抛物线动画实例制作
Feb 24 Javascript
浅谈Vue网络请求之interceptors实际应用
Feb 28 Javascript
微信小程序如何连接Java后台
Aug 08 Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
Nov 11 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
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
解析yii数据库的增删查改
2013/06/20 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
用python 制作图片转pdf工具
2015/01/30 Python
python使用socket连接远程服务器的方法
2015/04/29 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python使用knn实现特征向量分类
2018/12/26 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
python实现邮件循环自动发件功能
2020/09/11 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
英语教学随笔感言
2014/02/20 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
婚育证明格式
2015/06/17 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript