如何在 Angular 4 中的 router.navigate 之后重新加载视图?
How to reload a view after router.navigate in Angular 4?
我有一个由 header 组件控制的商店功能开关,并显示该地点的仪表板。
在 header 组件中,我导航到仪表板路线,即使我已经在该路线中。
this.router.navigate(['/venues', this.currentVenue._id, 'dashboard']);
但它不会再次触发 ngOnInit 挂钩,所以我的视图不会重新加载。
这种情况的正确解决方法是什么?
您需要重新加载视图吗?或者只是重新获取一些数据?
如果只需要根据路由参数重新获取数据,可以这样做:
ngOnInit(): void {
this.route.params.subscribe(
params => {
const id = +params['id'];
this.getMovie(id); // <- Or whatever you need to do here
}
);
}
在ngOnInit中,这段代码订阅了路由参数。因此每次参数更改时,即使视图不是 changed/reloaded,更改也会作为订阅的一部分被拾取并执行关联的回调。
我有一个由 header 组件控制的商店功能开关,并显示该地点的仪表板。
在 header 组件中,我导航到仪表板路线,即使我已经在该路线中。
this.router.navigate(['/venues', this.currentVenue._id, 'dashboard']);
但它不会再次触发 ngOnInit 挂钩,所以我的视图不会重新加载。
这种情况的正确解决方法是什么?
您需要重新加载视图吗?或者只是重新获取一些数据?
如果只需要根据路由参数重新获取数据,可以这样做:
ngOnInit(): void {
this.route.params.subscribe(
params => {
const id = +params['id'];
this.getMovie(id); // <- Or whatever you need to do here
}
);
}
在ngOnInit中,这段代码订阅了路由参数。因此每次参数更改时,即使视图不是 changed/reloaded,更改也会作为订阅的一部分被拾取并执行关联的回调。