【发布时间】:2017-09-18 08:28:09
【问题描述】:
我有 3 条路由,一条用于应用程序模块,一条用于管理部分,最后一条用于客户端。他们在这里:
-- 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解析为:city,这是核心路由中的一个参数。
如何告诉 Angular 的路由器将 http://myDomain/admin 解析为 /admin,如果其他值则解析为 :city ?
谢谢
更新: 我通过更改我的应用程序模块中声明的模块的顺序解决了这个问题,我必须在 ClientModule 之前导入 AppRoutingModule ......这看起来很奇怪,但它有效。
更新 2: update1 没有解决这个问题,路由器在颠倒导入顺序时忽略了客户端路由器模块
【问题讨论】:
-
你为什么使用路径参数类型路由
:city -
因为我需要它向用户展示一个城市的信息
-
这是一个动态参数,我需要在我的 URL 中有
http://myDomain/City1或http://myDomain/City2并提供正确的信息 -
对不起,我弄错了
-
我建议您从 admin 和 client 路由中仅删除顶层组件,然后使用 path 。当您使用延迟加载时
标签: angular routing angular-routing