【发布时间】:2020-12-01 18:42:24
【问题描述】:
我想在同一页面实现保存和编辑。当然,我有很多字段输入所以,我可以输入一些输入字段和save没有重定向到另一个页面。
我想要的是在 POST 请求后获取当前 ID 所以,我可以使用 That ID 到 PATCH request。
Vuejs Code
<v-btn
color="primary"
v-if="isEdit === false"
small
:loading="loading"
@click="save"
>save</v-btn
>
<v-btn
color="primary"
small
:loading="loading"
@click="edit"
v-if="isEdit === true"
>edit</v-btn
>
In script
<script>
export default {
data() {
return {
form: {},
isEdit: false
}
},
save() {
this.loading = true;
axios
.post(`api/v1/partner/`, this.form)
.then((res) => {
console.log(res);
this.isEdit = true;
})
.catch((err) => {
console.log(err.response);
this.loading = false;
this.snackbar.value = true;
this.$refs.form.validate(err.response.data);
});
},
edit() {
this.isEdit = true;
axios
.patch(`api/v1/partner/${this.form.id}/`, {
})
.then((res) => {
console.log(res);
// this.$router.push(`/partner/`);
this.loading = false;
})
.catch((err) => {
console.log(err.response);
this.loading = false;
});
},
}
</script>
感谢您的所有帮助。谢谢...
【问题讨论】:
-
您的 API 对 POST 请求的响应是什么?是否包含新 ID?
-
@Phil,在
POST request之后,是的,我得到了新 ID。 -
通常,人们使用
PUT来更新现有资源。PATCH就像是部分更新(例如,不是整个对象,只是选择属性)。 -
@Phil,是的,我知道这一点。非常感谢您的解决方案,它比我预期的要简单。 :)
标签: html vue.js vuetify.js