el-autocomplte 輸入後匹配輸入建議(可以自定義模板)
阿新 • • 發佈:2021-11-10
這個元件我用兩次了,也犯了兩次錯,不能在犯了,G寶貝
<el-autocomplete class="inline-input" v-model="state2" :fetch-suggestions="querySearch" placeholder="請輸入內容" :trigger-on-focus="false" @select="handleSelect" ></el-autocomplete>
注意(這裡的createFilter===0),是有問題的
querySearch(queryString, cb) { var restaurants = this.restaurants; var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants; // 呼叫 callback 返回建議列表的資料 cb(results); }, createFilter(queryString) { return (restaurant) => { return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0); }; },
indexOf === 0 表示匹配下標為0的也就是開頭的位置,才顯示,搜尋合肥為啥顯示,是因為name裡面的關鍵字合肥都在前面,而微信的不在前面,都在名字的中間或者後面,
要改成( >-1)
大於-1的意思就是,只要名字中包含合肥,都會匹配到,
createFilter(queryString) { return (restaurant) => { return ( console.log("restaurant.name-->:",restaurant.name.toLowerCase(), ", queryString-->:", queryString.toLowerCase()), restaurant.name.toLowerCase().indexOf(queryString.toLowerCase()) >-1 ) } },