我有一个组件,路由器可以解析数据,例如:
this.route.data.subscribe((data => { .....
现在我们已经为此组件添加了一个http post事务,它改变了我们解析的数据的状态。
有没有方便的方法来重新解决路线数据?
添加更多代码......某些内容已更改为保护IP,因此请原谅任何语法错误。
在子组件中,订阅帖子:
this.myDataService.postUpdate(id, this.noteText).subscribe(
data => {
this.userMessageService.send('success', 'Update Complete', 'The update has been updated.');
},
error => this.userMessageService.send('error', 'Update Error', 'The update failed: ' + <any>error)
);
然后在“myDataService”中:
postUpdate(id: number, notes: string) {
return this.http
.post(this.url,
{ "Id": id, "Notes": notes }, options)
.map((res) => {
return {};
})
.catch((e) => {
return Observable.throw(e.message || e);
});
}
答案 0 :(得分:0)
我会将你的观察者与flatMap连在一起。
// in your main.component
this.route.data.flatMap(res => {
return this.myDataService.postUpdate(id, this.noteText);
})
.flatMap(res => {
return this.myDataService.initialObservable(); // This is the same observable that you have in your resolve guard
}
.subscribe(res => {
// called when 3 successive http request have finished
});