在elementUI中使用 el-autocomplete 實現遠程搜索的下拉框


在template中添加標簽

<el-autocomplete 
  v-model="detail.CUSTOMER_NAME" 
  :fetch-suggestions="querySearchAsync" 
  @select="handleSelect"
  placeholder="請輸入內容"
>
</el-autocomplete>

在script中添加下面兩個函數

//queryString 為在框中輸入的值
//callback 回調函數,將處理好的數據推回
querySearchAsync(queryString, callback) {
    var list = [{}];
     //調用的后台接口
    let url = 后台接口地址 + queryString;
     //從后台獲取到對象數組
    axios.get( url ).then((response)=>{
        //在這里為這個數組中每一個對象加一個value字段, 因為autocomplete只識別value字段並在下拉列中顯示
        for(let i of response.data){
            i.value = i.想要展示的數據;  //將想要展示的數據作為value
        }
        list = response.data;
        callback(list);
    }).catch((error)=>{
    console.log(error);
    });
}

@select="handleSelect"  是選中某一列觸發的事件,在這里item為選中字段所在的對象

handleSelect(item) {
    console.log(item);
    //do something
}

需要注意的地方:

后台獲取的數組中每一個對象必須要有一個value字段, 因為autocomplete只識別value字段並在下拉列中顯示

這里獲取數據使用axios, 需要安裝並引入

為什么選擇input組件群下的el-autocomplete 而不是select下的遠程搜索?
因為點擊選中時可獲取到選中行的附帶信息即一個對象, 而select組件下的遠程搜索只能選中點擊的字符串。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM