【发布时间】:2016-10-30 00:57:44
【问题描述】:
基本上,我有一个包含元素列表的组件,还有一个详细信息组件,您可以在其中编辑或添加新元素。
通过 http 服务(this.myservice 基于文档 https://angular.io/docs/ts/latest/tutorial/toh-pt6.html 中的 hero.service.ts)将元素添加到我的服务器后。然后我直接跳回元素组件列表。
我使用 Zone,所以调用 ngOnInit。 Angular 2 ngOnInit not called
问题是元素列表通常还没有被新元素更新。我想异步 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);
}
}
【问题讨论】:
标签: typescript angular angular2-routing angular2-http