具有多个可选参数的Angular2和布线

具有多个可选参数的Angular2和布线,angular,angular2-routing,Angular,Angular2 Routing,我有一个Angular2应用程序,它有一个带有多个路由参数的模块,其中一些是可选的。路由在Angular本身内部工作完全正常,但如果直接使用,生成的URL会中断。我在想原因。我还试图弄清楚,当/champion处于访问状态时,无论参数是什么,我都可以使链接处于活动状态 模块中定义的路线 RouterModule.forChild([ { path: 'champion/:id', component: ChampionComponent }, { path: 'champion/:id/

我有一个Angular2应用程序,它有一个带有多个路由参数的模块,其中一些是可选的。路由在Angular本身内部工作完全正常,但如果直接使用,生成的URL会中断。我在想原因。我还试图弄清楚,当
/champion
处于访问状态时,无论参数是什么,我都可以使链接处于活动状态

模块中定义的路线

RouterModule.forChild([
  { path: 'champion/:id', component: ChampionComponent },
  { path: 'champion/:id/:version', component: ChampionComponent }
])
链接(点击时有效)

冠军分析 但是尝试直接访问URL(
localhost:5555/champion/1/7.9.1
)失败,因为
无法获取/champion/1/7.9.1


编辑:我应该注意,只有第二条路线失败。在地址栏中键入
localhost:5555/champion/1
可以正常工作。

尝试交换路由线路

RouterModule.forChild([
  { path: 'champion/:id/:version', component: ChampionComponent },
  { path: 'champion/:id', component: ChampionComponent }
])

(从锚上向下滚动一点)

可能是重复的你好,@ProfessorAllman,我已经编辑了原文。其他路线也可以,只是有多个参数的条目不行。不,恐怕是同一个问题。单击包含第二个参数的链接有效,但使用地址栏无效。无论绕路线走哪条路,结果都是一样的。
RouterModule.forChild([
  { path: 'champion/:id/:version', component: ChampionComponent },
  { path: 'champion/:id', component: ChampionComponent }
])