1. 程式人生 > 其它 >el-autocomplte 輸入後匹配輸入建議(可以自定義模板)

el-autocomplte 輸入後匹配輸入建議(可以自定義模板)

這個元件我用兩次了,也犯了兩次錯,不能在犯了,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
        )
      }
    },