Angular2,如何只重新加载一次组件?

时间:2017-01-25 08:24:49

标签: angular angular2-routing angular2-template angular2-services angular2-directives

我有两个组件component Acomponent B

在组件A中,我将HTTP请求发布到服务器并获得status =“success”的响应。在success上,我使用状态='成功'的queryParams导航到组件B.

在组件B中,我将检查构造函数(),如果我将queryParam's值作为“成功”,那么我只想重新加载一次并重定向到下一个组件C.

我使用了location.reload(),但我最终一次又一次地重新加载组件B.

有没有解决方法呢?

Component A
.subscribe(result => {
    if(result.status == 'success'){
        this.router.navigate(['/componentB'],{queryParams:{response: result.status}});
                                         }

component B    constructor(){
   this._activatedRoute.queryParams.subscribe(
       (queryParam: any) => this.response = queryParam['response']);
     if(this.response == 'success'){
            this.route.navigate(['/componentC']);
            window.location.reload();
   }

}

1 个答案:

答案 0 :(得分:0)

导航到组件C,然后导航到要重新加载的组件。 //第二个参数_skipLocationChange=true以避免后退按钮中的url

this.route.navigateByUrl('/componentC', true);