我有3条路线,一条用于app模块,另一条用于admin部分,另一条用于客户端。他们在这里:
-- App routing --
export const routes: Routes = [
{ path: 'admin', loadChildren: 'app/admin/admin.module#AdminModule' },
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: '**', redirectTo: 'home', pathMatch: 'full' }
];
-- Admin routing --
const routes: Routes = [
{ path: '', component: AdminComponent,
children: [
{ path: '', redirectTo: 'evenements', pathMatch: 'full' },
{ path: 'evenements', component: AdminEventComponent }
]
}
];
-- Client routing --
const routes: Routes = [
{ path: '', component: CoreComponent,
children: [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: ':city', component: HomeComponent }
]
}
];
问题在于,当我尝试转到http://myDomain/admin
时,路由器会尝试解析/ admin as:city这是核心路由中的参数。
如何告诉angular的路由器将http://myDomain/admin
解析为/ admin,如果其他值将其解析为:city?
谢谢
更新 我通过更改app-module中声明的模块的顺序解决了这个问题,我不得不在ClientModule之前导入AppRoutingModule ......这看起来很奇怪,但它确实有效。
UPDATE2: update1没有解决此问题,路由器在反转导入顺序时忽略了客户端路由器模块
答案 0 :(得分:0)
解决问题的一种方法是将路径:city
更改为home/:city
,但这可能不是您想要做的。
编辑:删除了无效的旧答案,仅保留上述答案作为解决OP所述问题的替代方法。