cascader 级联选择器懒加载回显
时间: 2023-07-06 22:41:15 浏览: 173
使用element中el-cascader级联选择器:实现省市区街道筛选、动态懒加载以及回显
Cascader 级联选择器的懒加载,一般是通过在 `load` 事件中异步加载子选项实现的。当用户选择某一级选项时,会触发 `load` 事件,此时可以根据当前选中的选项,请求后台数据获取下一级选项列表,然后更新 Cascader 的选项列表。
在懒加载时,如果需要回显已选中的选项,可以通过 `lazy` 属性配合 `value` 属性实现。`lazy` 属性表示是否启用懒加载模式,`value` 属性表示级联选择器的选中值,是一个数组。
以下是一个简单的示例:
```html
<el-cascader
v-model="selectedOptions"
:options="options"
:lazy="true"
:value="selectedOptions"
@load="handleLoad"
></el-cascader>
```
在这个示例中,`selectedOptions` 是一个数组,用于绑定级联选择器的值。`options` 是一个数组,表示级联选择器的选项列表。`lazy` 属性设置为 `true`,表示启用懒加载模式。`value` 属性设置为 `selectedOptions`,表示级联选择器的选中值与 `selectedOptions` 绑定。
当用户选择某一级选项时,会触发 `load` 事件,此时会调用 `handleLoad` 方法,该方法需要异步请求后台数据,获取下一级选项列表,然后更新级联选择器的选项列表。在加载完成后,需要将 `selectedOptions` 设置为对应的数组,以便回显已选中的选项。以下是一个简单的 `handleLoad` 方法示例:
```js
methods: {
async handleLoad(selectedOptions) {
const res = await axios.get('/api/cascader', {
params: {
selectedOptions: selectedOptions
}
})
const options = res.data
// 更新级联选择器的选项列表
this.$set(selectedOptions[selectedOptions.length - 1], 'children', options)
// 回显已选中的选项
this.selectedOptions = [...selectedOptions]
}
}
```
在这个示例中,`handleLoad` 方法异步请求后台数据,获取下一级选项列表,然后使用 `$set` 方法更新级联选择器的选项列表,最后将 `selectedOptions` 设置为对应的数组,以便回显已选中的选项。
阅读全文