import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute){
}
ngOnInit(){
//put the below code in ngOninit
this.route.params.subscribe(params=>{
//you get params object with parameter passed
//ex: let id = params.id or take any action
});
}
5条答案
按热度按时间h4cxqtbf1#
ngOnInit在初始加载时仅为路由触发一次。订阅ngOnInit中的observable。在ngonDestroy中取消订阅。
7kqas0il2#
下一个代码只是向你展示逻辑。它不是工作原型,而是伪代码。
ni65a41a3#
我也遇到了同样的问题,但ngOnInit中的“this.route.params.subscribe”解决方案对我来说不够好。实际上,所有子组件都不会重新加载...我发现解决这个问题的方法是:
qlckcl4x4#
假设路由配置如下:
您可以订阅组件中的参数更改,如下所示:
需要注意的是,
ngOnInit
仍然只会被调用一次。只有subscribe块会在每次参数更改时被调用。所以你需要对subscribe块中的参数变化做出React。nzrxty8p5#
你可以通过observable获取数据,使用下面的代码片段:this.route.params.subscribe()