更新后重新解析数据的角度路由器

时间:2017-07-13 13:46:25

标签: angular angular-components angular-router

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

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

1 个答案:

答案 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 
});