当前位置: 首页 > news >正文

【element-ui】el-autocomplete实现 无数据匹配

文章目录

  • 方法一:使用 default 插槽
  • 方法二:使用 empty-text 属性(适用于列表类型)
  • 总结


在使用 Element UI 的 el-autocomplete 组件时,如果你希望在没有任何数据匹配的情况下显示特定的内容,你可以通过自定义模板或者通过插槽(slot)来实现。下面我将提供两种方法来实现当没有数据匹配时显示自定义内容。

方法一:使用 default 插槽

el-autocomplete 组件提供了一个 default 插槽,你可以在这个插槽中定义当没有匹配项时显示的内容。

<template><el-autocompletepopper-class="my-autocomplete"v-model="query":fetch-suggestions="querySearch"placeholder="请输入内容"@select="handleSelect"><template slot="default" slot-scope="{ item }"><div v-if="item">{{ item.value }}</div><div v-else>没有找到匹配的数据</div></template></el-autocomplete>
</template><script>
export default {data() {return {query: ''};},methods: {querySearch(queryString, cb) {const results = queryString ? this.filterData(queryString) : [];// 如果没有数据,你可以在这里处理,比如在回调中返回一个特定的对象或字符串if (results.length === 0) {cb([{ value: '没有找到匹配的数据' }]);} else {cb(results);}},filterData(queryString) {// 这里应该是你的过滤逻辑,返回匹配的数据数组return [{ value: '示例数据' }]; // 示例数据,根据实际情况填充},handleSelect(item) {console.log(item);}}
};
</script>

方法二:使用 empty-text 属性(适用于列表类型)

如果你使用的是下拉列表(如 el-select),可以使用 empty-text 属性来设置没有数据时的显示文本。但 el-autocomplete 主要用于输入建议,并不直接支持 empty-text。不过,你可以通过自定义下拉列表的样式来间接实现类似的效果。例如:

<el-autocompletev-model="query":fetch-suggestions="querySearch"placeholder="请输入内容"><template slot="default" slot-scope="{ item }"><div>{{ item.value }}</div></template>
</el-autocomplete>
在 CSS 中添加样式来处理空状态:.el-autocomplete-suggestion__wrap {min-height: 40px; /* 根据需要调整 */
}
.el-autocomplete-suggestion__list {padding: 0; /* 根据需要调整 */
}
.el-autocomplete-suggestion__list li {padding: 10px; /* 根据需要调整 */
}
.el-autocomplete-suggestion__list li:empty::before {content: "没有找到匹配的数据"; /* 设置没有数据时的显示内容 */color: #999; /* 根据需要调整颜色 */
}

注意:上面的 CSS 方法依赖于 li 元素为空时使用 ::before 伪元素来添加内容,这种方法在某些情况下可能不够稳定,特别是在动态内容更新时。更好的方式是直接在 default 插槽中处理无数据的情况。

总结

总之,最推荐的方式是使用第一种方法,通过 default 插槽来灵活控制无匹配数据时的显示内容。这样可以更直接地控制 UI 的表现和逻辑。

相关文章:

  • win10系统docker安装dify
  • 【Python新手入门指南】极速搭建Python开发环境
  • open3d:使用彩色图和深度图生成点云
  • js 比较两个对象的值,不相等就push对象的key
  • 虚拟仿真技术赋能家庭教育实训室建设要点解析​
  • Cursor AI编程助手模型选择对了吗?
  • C++ Primer Plus 7.8 函数与 array 对象
  • 传统业务对接AI-AI编程框架-Rasa的业务应用实战(2)--选定Python环境 安装rasa并初始化工程
  • springboot实现查询学生
  • 图像尺寸测量仪应用刀具尺寸测量
  • Git操作记录
  • Git Svn
  • Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
  • 【从0-1的CSS】第1篇:CSS简介,选择器已经常用样式
  • C++虚函数表(虚表Virtual Table,简称vtable、VFT)(编译器为支持运行时多态(动态绑定)而自动生成的一种内部数据结构)虚函数指针vptr
  • PPT转图片拼贴工具 v1.0
  • dvwa11——XSS(Reflected)
  • 【Maniskill】使用Ppo的官方基线训练时出现指标突然“塌陷”的现象
  • CSP-VP37th
  • ML Kit与YOLO:移动AI与实时检测终极对决
  • 蓬莱市住房和规划建设管理局网站/怎么投放广告
  • 西安哪家公司做网站/百度人工客服24小时
  • 万网人网站备案流程/百度推广电话是多少
  • 怎么做同城购物网站/沈阳网站建设
  • 一键生成海报的网站/手机百度网盘网页版登录入口
  • 慈利县建设局网站/网络公司是做什么的