将router.navigateByUrl之后的组件刷新为具有不同参数的相同URL

时间:2019-03-27 11:39:02

标签: angular url router reload

我有一个路由器<router-outlet></router-outlet>,其中包含以下路由:

  

{路径:“ employee /:id”,组件:EmployeeComponent}

在具有特定雇员的路由器出口内已经有一个EmployeeComponent组件的情况下,我在代码中执行以下操作:this.router.navigateByUrl('/employee/'+this.employee2);

URL更改了,但是组件不使用新的Employee执行ngOnInit()方法,并且内容没有刷新。我需要使用路由器上已经存在的EmployeeComponent实例化一个新的EmployeeComponent,或者刷新现有的EmployeeComponent。如何解决?

2 个答案:

答案 0 :(得分:1)

需要注入“ ActivatedRoute”并订阅参数

constructor(route:ActivatedRoute){
      route.params.subscribe(val=>{ 
       //    add to do function()
      })
   }

答案 1 :(得分:1)

您可以使用AcitvatedRoute

import { ActivatedRoute } from "@angular/router";

constructor(private route: ActivatedRoute) { }

使用 Params

ngOnInit(){
  this.route.params.subscribe(param=>{
    console.log(+params['id'])
  })
}