【发布时间】:2021-03-11 02:27:22
【问题描述】:
我使用 Vuetify 自动完成作为可重用组件来显示键/值对中的作业列表。在创建记录时,组件工作正常,但在编辑应填写数据的位置时,数据有值但不显示在组件上。
JobDropdownSelector.vue:
..................................................... ..................................................... ....................................
<template>
<v-autocomplete
v-model="job"
label="Job Designation"
item-value="id"
item-text="name"
return-object
:items="jobs"
@change="onChange"
>
</v-autocomplete>
</template>
<script>
export default {
props: {
selectedJob: {
type: Object,
default: null
}
},
data() {
return {
jobs: [],
job: null
};
},
methods: {
getDataFromApi() {
axios.get("api/jobs")
.then(response => {
this.jobs = response.data.data;
})
.catch(error => {
console.log(error);
reject();
});
},
onChange(e) {
this.job = e;
this.$emit("onChange", e);
}
},
watch: {
selectedJob: {
deep: true,
immediate: true,
handler(newValue, oldValue) {
this.job = newValue;
}
}
},
mounted() {
this.getDataFromApi();
}
};
</script>
EditForm.vue:
..................................................... ..................................................... ....................................
<template>
<div>
<JobDropdownSelector
v-model="job"
:selectedJob="job"
@onChange="onChangeJob"
>
</JobDropdownSelector>
</div>
</template>
<script>
import JobDropdownSelector from "../components/JobDropdownSelector";
export default {
components: {
JobDropdownSelector
},
data() {
return {
job: null
};
},
methods: {
onChangeJob(e) {
this.job = e;
},
getInitialJob() {
axios.get("api/jobs/22").then(response => {
this.job = response.data.data;
});
}
},
mounted() {
this.getInitialJob();
}
};
</script>
【问题讨论】:
-
遇到了同样的问题。你想通了吗?这很沮丧:(
标签: vue.js vuetify.js