VueJs select 来自数据库的默认值
VueJs select default values from database
我正在使用 el-select 但我无法 select 编辑页面中的默认值。
它select数据量相同但细节错误。这张图告诉你:
So this data of mine has 2 value but the values are core 17
and core 19
but here as you see i get core 1
and core 1
so i get the right amount but wrong data.
代码
template
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="Cores">
<el-select style="width: 100%;" filterable multiple clearable v-model="form.cores" placeholder="Select Cores">
<el-option
v-for="core in cores"
:key="core.id"
:label="core.name"
:selected="core.id === form.cores.id"
:value="core.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
script
I commented every part to you don't get confused
data() {
return {
cores: [], // core 1 till core 20
form: {
name: '',
position: '',
link_id: '',
cable_id: '',
cores: [], // core 17 and core 19
description: '',
longitude: '',
latitude: '',
_method: 'PUT',
},
}
},
methods: {
fetchRegion() {
axios
.get('/api/admin/closures/'+this.$route.params.id, {
headers: {
Authorization: 'Bearer ' + localStorage.getItem('access_token')
}
})
.then(response => {
// removed the rest to make it clean.
this.form.cores = response.data.data.cores; // this return my default (stored data) core 17, core 19
this.cores = response.data.cores; // this return all cores from 1 to 20 including 17 and 19 in order if user wants to add more etc.
})
.catch(function (error) {
console.log('error', error);
});
},
}
知道如何 select 正确的值吗?
更新
this.form.cores
的控制台结果
您可以先使用 .map()
方法仅从 form.cores
数组中获取选定的 ID,例如:
form.cores.map(x=>x.id) // returns [17, 19]
然后使用.includes()
方法在这里设置默认值,如:
:selected="form.cores.map(x=>x.id).includes(core.id)"
我正在使用 el-select 但我无法 select 编辑页面中的默认值。
它select数据量相同但细节错误。这张图告诉你:
So this data of mine has 2 value but the values are
core 17
andcore 19
but here as you see i getcore 1
andcore 1
so i get the right amount but wrong data.
代码
template
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="Cores">
<el-select style="width: 100%;" filterable multiple clearable v-model="form.cores" placeholder="Select Cores">
<el-option
v-for="core in cores"
:key="core.id"
:label="core.name"
:selected="core.id === form.cores.id"
:value="core.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
script
I commented every part to you don't get confused
data() {
return {
cores: [], // core 1 till core 20
form: {
name: '',
position: '',
link_id: '',
cable_id: '',
cores: [], // core 17 and core 19
description: '',
longitude: '',
latitude: '',
_method: 'PUT',
},
}
},
methods: {
fetchRegion() {
axios
.get('/api/admin/closures/'+this.$route.params.id, {
headers: {
Authorization: 'Bearer ' + localStorage.getItem('access_token')
}
})
.then(response => {
// removed the rest to make it clean.
this.form.cores = response.data.data.cores; // this return my default (stored data) core 17, core 19
this.cores = response.data.cores; // this return all cores from 1 to 20 including 17 and 19 in order if user wants to add more etc.
})
.catch(function (error) {
console.log('error', error);
});
},
}
知道如何 select 正确的值吗?
更新
this.form.cores
您可以先使用 .map()
方法仅从 form.cores
数组中获取选定的 ID,例如:
form.cores.map(x=>x.id) // returns [17, 19]
然后使用.includes()
方法在这里设置默认值,如:
:selected="form.cores.map(x=>x.id).includes(core.id)"