带有json服务器的Angular 7-如何检索发布响应中返回的ID?

时间:2019-04-02 21:55:53

标签: angular post httpresponse json-server

使用以下http选项:

const httpOptions: any = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json'
  }),
  observe: 'response'
};

am将http帖子发送到json服务器端点,如下所示:

return this.http.post(`${this.baseUrl}/events`, myEvent, httpOptions);

订阅该帖子的代码如下:

this.api.saveEvent(this.event).subscribe(data => {
  // Need to pick up the id from data (HttpResponse) here
});

This is the returned HttpResponse object

我可以看到订阅中返回的data类型为HttpResponse-强制转换data的正确方法是什么,这样我就可以使用的body属性响应并选择json-server返回的id属性?

更新:按照下面的评论,最终我得到了saveNewEvent方法来返回Observable<HttpRespponse<Event>>,但是,只有当我将http选项作为嵌入式匿名对象传递时,此方法才有效。在const中设置选项并在post方法中引用该const不起作用,而且我还没有弄清楚为什么。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当您指定类型可以获取数据时,只需确保您的API正确返回它即可。

return this.http.post<{id: Number}>(`${this.baseUrl}/events`, myEvent, httpOptions);

this.api.saveEvent(this.event).subscribe(data => {
  console.log(data.id);
});