如何在Angular 4中的router.navigate之后重新加载视图?

时间:2017-10-18 21:19:32

标签: angular ngoninit

我切换到商店功能,由标题组件控制并显示该场地的仪表板。

在该标题组件中,即使我已经在该路线中,我也会导航到仪表板路线。

this.router.navigate(['/venues', this.currentVenue._id, 'dashboard']);

但它不会再次触发ngOnInit挂钩,因此我的视图不会重新加载。

此类案例的正确解决方法是什么?

1 个答案:

答案 0 :(得分:2)

您需要重新加载视图吗?或者只是重新获得一些数据?

如果您只需要根据路由参数重新获取数据,则可以执行以下操作:

ngOnInit(): void {
    this.route.params.subscribe(
        params => {
            const id = +params['id'];
            this.getMovie(id);   // <- Or whatever you need to do here
        }
    );
}

在ngOnInit中,此代码订阅路由参数。因此,每次参数更改时,即使视图未更改/重新加载,更改也将作为订阅的一部分被选取,并执行相关的回调。