Vue.js 过滤前Vuetify自动完成最小字符数
是否有一个属性或方法可以阻止Vuetify Autocomplete筛选要显示的项目,直到满足特定条件(例如键入3个字符)?我有一个基本的解决方案,但我真的希望有另一个解决方案。在最终用户输入至少三个字符之前,我不想显示任何内容。我有一个解决方案,例如:Vue.js 过滤前Vuetify自动完成最小字符数,vue.js,vuetify.js,Vue.js,Vuetify.js,是否有一个属性或方法可以阻止Vuetify Autocomplete筛选要显示的项目,直到满足特定条件(例如键入3个字符)?我有一个基本的解决方案,但我真的希望有另一个解决方案。在最终用户输入至少三个字符之前,我不想显示任何内容。我有一个解决方案,例如: watch: { search (val) { if(val.length > 2){ this.minimumCharacter = 'show' }else{ this.minimumCharact
watch: {
search (val) {
if(val.length > 2){
this.minimumCharacter = 'show'
}else{
this.minimumCharacter = 'null'
}
在我的HTML中:
<template
v-if="minimumCharacter === 'show'"
slot="item"
slot-scope="{ item, tile }"
>
当然,Autocomplete在某个地方有一个属性可以处理这个问题。当你有成千上千的记录时,你并不是真的想在你输入一个字符后立即显示所有内容。但我已经搜索过了,除非他们称之为我无法联系的东西,否则它就不在那里 您可以使用filter prop实现自己的筛选函数,如果文本长度小于3,该函数将始终返回false:
(item, queryText, itemText) => {
const hasValue = val => val != null ? val : ''
const text = hasValue(itemText)
const query = hasValue(queryText)
if(queryText < 3) return false;
return text.toString()
.toLowerCase()
.indexOf(query.toString().toLowerCase()) > -1
}
(项目,查询文本,项目文本)=>{
常量hasValue=val=>val!=null?val:'
const text=hasValue(itemText)
const query=hasValue(queryText)
如果(queryText<3)返回false;
返回text.toString()
.toLowerCase()
.indexOf(query.toString().toLowerCase())>-1
}
当然,Autocomplete在某个地方有一个属性可以处理这个问题。当你有成千上千的记录时,你并不是真的想在你输入一个字符后立即显示所有内容。但我已经搜索过了,除非他们称之为我无法联系的东西,否则它就不在那里
我找不到这样的财产,但对我来说,这个变体很好:
watch: {
search (val) {
if(val.length > 2){
//search code
}
p.S.过滤器在搜索后开始工作,因此它不会解决当前任务以阻止搜索。检查。使用
:filter=“customFilter”
,可以创建用于返回数据的自定义逻辑。示例来自您应该添加的关于如何使用自定义过滤器以及在何处放置函数的