如何router.navigate到路由网址中具有id占位符的路由

时间:2016-10-03 19:32:29

标签: angular angular2-routing

我有一个路线网址:

/departments/:id/employees/assign'

当我导航到上面的网址时:

this._router.navigate(['/departments/:id/employees/assign', id]);

然后,angular总是将传递的id附加到url的末尾,但这不是我想要的。

当我尝试这个时

this._router.navigate(['/departments/:id/employees/assign', {id: id}]);

我在浏览器中收到此网址:

http://localhost:4200/departments/%3Aid/employees/assign;id=1

我希望网址位于浏览器中:/departments/1/employees/assign

我需要改变什么?

2 个答案:

答案 0 :(得分:2)

根据文档https://angular.io/docs/ts/latest/api/router/index/Router-class.html,您应该选择用户navigationByUrl:

  

router.navigateByUrl(" /部门/:ID /雇员/分配&#34);

或分割部分网址的组件:

  

router.navigate(['部门',1,'员工',分配],{relativeTo:route});

答案 1 :(得分:2)

使用模板文字来形成这样的动态网址:

[`/departments/${id}/employees/assign`]