我有一个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
可以正常工作。
答案 0 :(得分:1)
尝试交换路由线。
RouterModule.forChild([
{ path: 'champion/:id/:version', component: ChampionComponent },
{ path: 'champion/:id', component: ChampionComponent }
])
Order matters(从锚点向下滚动一下)