0

我有一个组件,数据由路由器解析,例如:

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);
        });
}
4

1 回答 1

0

我会将您的 observable 与 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 
});
于 2017-07-13T16:46:56.040 回答