Angular2和带有多个可选参数的路由

时间:2017-05-05 14:52:39

标签: angular angular2-routing

我有一个Angular2应用程序,它有一个带有多个路由参数的模块,其中一些是可选的。路由在Angular内部完全正常,但如果直接使用,生成的URL会中断。我试图找出原因。我还试图弄清楚如何在/champion访问时让链接生效,无论参数是什么。

模块中定义的路由

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

链接(点击后即可使用)

<a class="item" [routerLink]="['/champion', 1, '7.9.1']" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:false}">Champion Analysis</a>

但是尝试直接访问网址(localhost:5555/champion/1/7.9.1)会失败并显示Cannot GET /champion/1/7.9.1

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

1 个答案:

答案 0 :(得分:1)

尝试交换路由线。

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

Order matters(从锚点向下滚动一下)