Javascript 如何通过v-for将axios数据放入v-select?
我使用axios获取多行数据, 然后我想把数据放在v-select中,以便其他人可以选择, 我想用v-for让他一行一行地打印出来。 但结果显示没有可用的数据 我的代码Javascript 如何通过v-for将axios数据放入v-select?,javascript,vue.js,axios,Javascript,Vue.js,Axios,我使用axios获取多行数据, 然后我想把数据放在v-select中,以便其他人可以选择, 我想用v-for让他一行一行地打印出来。 但结果显示没有可用的数据 我的代码 <template> <div> <v-select :item="desserts.name"></v-select> </div> </template> <script> export default { data:
<template>
<div>
<v-select :item="desserts.name"></v-select>
</div>
</template>
<script>
export default {
data: () => ({
desserts: [
{
id: "",
name: ""
}
]
}),
created() {
this.getprotifile();
},
methods: {
getprotifile() {
this.axios
.get("/api/admin/categories")
.then(res => {
//console.table(res.data);
this.desserts = res.data;
//console.log(this.desserts);
})
.catch(error => {
console.error(error);
})
.finally(() => {});
}
}
};
</script>
导出默认值{
数据:()=>({
甜点:[
{
id:“”,
姓名:“
}
]
}),
创建(){
这个.getprotifile();
},
方法:{
getprotifile(){
这是axios
.get(“/api/admin/categories”)
。然后(res=>{
//控制台表(res.data);
this.desserts=res.data;
//console.log(这个是甜点);
})
.catch(错误=>{
控制台错误(error);
})
.最后(()=>{});
}
}
};
甜点
是一个数组,因此它没有模板中写入的名称
属性
大概
就可以了
请查看官方vuetify文档,了解哪些道具传递给
v-select
,以使其正常工作:如果这是针对的vuetify v-select组件:items=“deserts”
(注意项目的复数形式),则需要一组对象,如
deserts: [
{text: "The name", value:"the ID"},
...
]
或者您可以使用指令
item-text="name"
item-value="id"
然后,您的:items对象可以看起来像
[{"id": 1,"name": "aaa"}, {"id": 4,"name": "bbb"}, {"id": 5,"name": "ccc"}, {"id": 9,"name": "ddd"}]
如果需要将数据从服务器映射到正确的格式,可以使用map方法
this.selectOptions = resp.data.options.map(options => ({value: option.id, text: option.name}));
我想这个可以解决这个问题:
<v-select :item="desserts.filter(item => item.name)"></v-select>
我有两组数据,我希望人们选择数据的名称[{“id”:1,“name”:“aaa”},{“id”:4,“name”:“bbb”},{“id”:5,“name”:“ccc”},{“id”:9,“name”:“ddd”}]