【问题标题】:How to reload a view after router.navigate in Angular 4?如何在 Angular 4 中的 router.navigate 之后重新加载视图?
【发布时间】:2018-03-30 20:58:26
【问题描述】:

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

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

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

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

这种情况的正确解决方法是什么?

【问题讨论】:

    标签: angular ngoninit


    【解决方案1】:

    您需要重新加载视图吗?还是只是重新获取一些数据?

    如果只需要根据路由参数重新获取数据,可以这样做:

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

    在 ngOnInit 中,这段代码订阅了路由参数。所以每次参数改变时,即使视图没有改变/重新加载,改变也会作为订阅的一部分被拾取并执行相关的回调。

    【讨论】:

      猜你喜欢
      • 2016-05-15
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 2019-08-08
      • 2018-04-24
      • 2018-05-09
      相关资源
      最近更新 更多