基本的に、要素のリストを持つコンポーネントと、新しい要素を編集または追加できる詳細コンポーネントがあります。
http サービス (this.myservice は、ドキュメントhttps://angular.io/docs/ts/latest/tutorial/toh-pt6.htmlの hero.service.ts に基づいています) を介して要素をサーバーに追加した後。次に、要素コンポーネントのリストに直接ジャンプします。
ngOnInit が呼び出されるように、Zone を使用します。Angular 2 ngOnInit が呼び出されない
問題は、要素のリストがまだ新しい要素で更新されていないことが非常に多いことです。非同期 HTTP リクエストの順序が混同されていると思います。
良い解決策とはどのようなものでしょうか?
export class DetailElemComp {
this.myService.addElem(this.elem)
.subscribe(
error => this.errorMessage = <any>error);
this.zone.run(() => this.router.navigate(['ListComponent']));
}
export class ListOfElemComp {
ngOnInit() {
this.myService.getElems()
.subscribe(
elems => this.elems = elems,
error => this.errorMessage = <any>error);
}
}