最近在学习多选框等组件时,发现从数据库中读出的值赋给v-model,没法在框中显示 。
其实,是赋值与v-model要求数据类型不同的原因。
多选框select举例:
<template>
<el-select v-model="value1" multiple placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</template>
<script>
export default {
data() {
return {
options: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}],
value1: []
}
}
}
</script>
对于多选框来说,v-model的值是一个数组。而下拉框选项options也是一个数组,没有深究之下,我就认为v-model只是options的一个子集,从数据库中读出的数据值与options数据格式一样,但是频频报错,得不到想要的显示。
正解:其实,赋给v-model的值应该是所选的options的value值的一个数组,类似:
['选项1', '选项2', '选项3','选项4','选项5']
不求甚解之过,写于此,谨记! |