如何router.navigate到路由url中带有id占位符的路由

Pas*_*cal 4 angular2-routing angular

我有一个路由网址,如:

/departments/:id/employees/assign'
Run Code Online (Sandbox Code Playgroud)

当我导航到上述网址时:

this._router.navigate(['/departments/:id/employees/assign', id]);
Run Code Online (Sandbox Code Playgroud)

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

当我尝试这个时

this._router.navigate(['/departments/:id/employees/assign', {id: id}]);
Run Code Online (Sandbox Code Playgroud)

我在浏览器中得到这个网址:

http://localhost:4200/departments/%3Aid/employees/assign;id=1
Run Code Online (Sandbox Code Playgroud)

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

我需要改变什么?

小智 5

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

router.navigateByUrl("/departments/:id/employees/assign");

或将 url 的组件分成几部分:

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


Dav*_*e V 5

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

[`/departments/${id}/employees/assign`]
Run Code Online (Sandbox Code Playgroud)