router.navigateByUrl 后刷新组件为同一个 URL 参数不同
Refresh component after router.navigateByUrl to the same URL with different parameters
我有一个包含以下路由的路由器 <router-outlet></router-outlet>
:
{ path: 'employee/:id', component: EmployeeComponent }
由于 EmployeeComponent 组件已经位于具有特定员工的路由器插座中,我在我的代码中执行以下操作:this.router.navigateByUrl('/employee/'+this.employee2);
url发生变化,但组件并没有对新的Employee执行ngOnInit()方法,内容也没有刷新。我需要使用路由器上已有的 EmployeeComponent 来实例化一个新的 EmployeeComponent,或者刷新现有的。如何解决?
需要注入"ActivatedRoute"并订阅参数
constructor(route:ActivatedRoute){
route.params.subscribe(val=>{
// add to do function()
})
}
你可以利用AcitvatedRoute
。
import { ActivatedRoute } from "@angular/router";
constructor(private route: ActivatedRoute) { }
使用参数
ngOnInit(){
this.route.params.subscribe(param=>{
console.log(+params['id'])
})
}
我有一个包含以下路由的路由器 <router-outlet></router-outlet>
:
{ path: 'employee/:id', component: EmployeeComponent }
由于 EmployeeComponent 组件已经位于具有特定员工的路由器插座中,我在我的代码中执行以下操作:this.router.navigateByUrl('/employee/'+this.employee2);
url发生变化,但组件并没有对新的Employee执行ngOnInit()方法,内容也没有刷新。我需要使用路由器上已有的 EmployeeComponent 来实例化一个新的 EmployeeComponent,或者刷新现有的。如何解决?
需要注入"ActivatedRoute"并订阅参数
constructor(route:ActivatedRoute){
route.params.subscribe(val=>{
// add to do function()
})
}
你可以利用AcitvatedRoute
。
import { ActivatedRoute } from "@angular/router";
constructor(private route: ActivatedRoute) { }
使用参数
ngOnInit(){
this.route.params.subscribe(param=>{
console.log(+params['id'])
})
}