elementui select选择器请求接口
时间: 2023-08-24 19:06:30 浏览: 146
elementUI前端CRUD页面
在 Element UI 的 select 组件中,可以通过设置 `filterable` 属性和 `remote` 属性来实现联动查询后台接口的功能。具体实现步骤如下:
1. 设置 `filterable` 属性为 `true`,表示需要启用搜索功能。
2. 设置 `remote` 属性为 `true`,表示需要从后台接口获取选项列表。
3. 设置 `remote-method` 属性为一个函数,该函数会在搜索时被调用,可以在该函数中发送请求获取符合条件的选项列表。
以下是一个示例代码:
```html
<el-select v-model="value" filterable remote :remote-method="remoteMethod" :loading="loading">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
```
```js
export default {
data() {
return {
value: '',
options: [],
loading: false
}
},
methods: {
remoteMethod(query) {
this.loading = true;
// 发送请求获取选项列表
axios.get('/api/selectOptions', {
params: { q: query }
}).then(res => {
this.options = res.data;
this.loading = false;
}).catch(error => {
console.log(error);
this.loading = false;
});
}
}
}
```
在上述代码中,`remoteMethod` 函数会在搜索时被调用,使用 axios 库发送请求到 `/api/selectOptions` 接口,并将搜索关键字作为 `q` 参数发送。后端接口需要根据关键字返回符合条件的选项列表。获取到选项列表后,将其赋值给 `options` 变量,即可在 select 组件中显示出来。同时,为了提高用户体验,可以设置 `loading` 属性为 `true`,表示正在加载选项列表,加载完成后再将其设置为 `false`。
阅读全文