使用Angular HTTP client对数据模型进行update操作

需求:在hero列表里点击某个hero,进入明细页面:

使用Angular HTTP client对数据模型进行update操作_第1张图片

在明细页面里修改hero name,点击save后,再回到hero列表,期望detail页面做的修改能够持久化。

使用Angular HTTP client对数据模型进行update操作_第2张图片
使用Angular HTTP client对数据模型进行update操作_第3张图片

下面是具体做法:

(1) hero detail Component的html里,新增一个按钮,绑定click事件的处理函数为save:

使用Angular HTTP client对数据模型进行update操作_第4张图片

detail Component的hero属性,需要加上@Input annotation:

使用Angular HTTP client对数据模型进行update操作_第5张图片

save函数的实现:

save(): void {
    this.heroService.updateHero(this.hero)
      .subscribe(() => this.goBack());
  }

具体的保存,是转交给Hero service实现。

(2) hero service里updateHero函数的实现:

updateHero(hero: Hero): Observable {
  return this.http.put(this.heroesUrl, hero, this.httpOptions).pipe(
    tap(_ => this.log(`updated hero id=${hero.id}`)),
    catchError(this.handleError('updateHero'))
  );
}

使用Angular HTTP client对数据模型进行update操作_第6张图片

httpOptions的值:

使用Angular HTTP client对数据模型进行update操作_第7张图片

httpOptions = {
    headers: new HttpHeaders({ 'Content-Type': 'application/json' })
  };

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

你可能感兴趣的:(TypeScript,Angular)