问题描述
我只想更新我的 json 服务器中的名称,但是当我 updateName() 时,除 id 和更新的名称外,所有对象的详细信息都被删除
updateName(id: string,name: string): Observable<any> {
const shipmentUrl = `${this.url}/${id}`;
return this.http.put<any>(shipmentUrl,{
name: name,});
updateName 之前的对象
{
"id": "S1000","name": "T-shirts(Summer2018) from Shanghai to Hamburg","cargo": [
{
"type": "Fabric","description": "1000 Blue T-shirts","volume": "2"
},{
"type": "Fabric","description": "2000 Green T-shirts","volume": "3"
}
],"mode": "sea","type": "FCL","destination": "Saarbrücker Str. 38,10405 Berlin","origin": "Shanghai Port","services": [
{
"type": "customs"
}
],"total": "1000","status": "ACTIVE","userId": "U1000"
},
updateName 之后的对象
{ "name": "shoes","id": "S1000" },
解决方法
如果您的 json 服务器是一个休息服务器并且您只想更改一个属性,那么您应该尝试 PATCH 请求,而不是 PUT。 PUT 更新整个对象,PATCH 只更改提到的字段。