IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> elementui input输入框实现模糊查询(中间踩了两个坑) -> 正文阅读

[JavaScript知识库]elementui input输入框实现模糊查询(中间踩了两个坑)

实现这个功能,在网上找了很多感觉都不太准确,残缺不全,这里做个总结
在这里插入图片描述

完整代码

           <el-autocomplete
				  v-model="state"
				  :fetch-suggestions="querySearchAsync"
				  placeholder="请输入内容"
				  @select="handleSelect">
			</el-autocomplete>
<script>
export default {
  data() {
    return {
		restaurants: [],//后端获取的数据  
        state: '', //输入框输入的双向绑定的数据
}
}
mounted() {
this.loadAll()
},
methods: {
	//获取后端数据的接口
    loadAll() {
        let that = this
        that.$axios.get(that.baseURL+'PROD/testdialog/documents/')
        .then(function(res){
          if (res.data.code===1){
            that.restaurants = res.data.data
            // console.log(res.data.data)
          }else{
            // 失败的提示
            that.$message.error(res.data.msg)
          }
        })
        .catch(function(err){
          console.log(err)
        })
      },

 	querySearchAsync(queryString, cb) {
        var restaurants = this.restaurants;
        var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
        cb(results);
        
      },
      createStateFilter(queryString) {
        return (state) => {
          return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
        };
      },
      handleSelect(item) {
        console.log(item);
      },

}
</script>

这里要强调两点:
(1)

createStateFilter(queryString) {
        return (state) => {
          return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
        };
      },


return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1); 
//这里大于-1可以实现模糊查询,比如你输入 git 那么git getgit  gitout都可以查询到
//如果你这里是 return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) ===0);
//当你输入 git 那么只能显示git  gitout 而getgit查询不到 只能以要搜寻的条件为开头

(2)

createStateFilter(queryString) {
        return (state) => {
          return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
        };

//这里的value要和你后端返回的key对应,也就是说你后端返回的数据的key要是value,不要随便改一个,前端会拿不到数据,至于为什么我也不清楚,反正可以实现
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:39:18  更:2021-09-09 11:39:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:45:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码