【发布时间】:2018-12-19 15:27:25
【问题描述】:
我正在尝试使用延迟加载的模块路由,如下所示,但它找不到 URL localhost:4200/authorization/opcodes 的匹配项。不过它可以加载主页。
src\app\app-routing.module.ts
const routes: Routes = [
{
path: '',
loadChildren: './modules/main-page/main-page.module#MainPageModule'
},
{
path: 'feature',
loadChildren: './modules/feature/feature.module#FeatureModule'
}
];
src\app\modules\main-page\main-page-routing.module.ts
const routes: Routes = [
{
path: '',
component: MainPageComponent,
canActivate: [AuthGuard],
children:[
{
path: 'authorization',
loadChildren: './authorization/authorization.module#AuthorizationModule'
}
]
}
];
src\app\modules\main-page\authorization\authorization-routing.module.ts
const routes: Routes = [
{
path: 'opcodes',
component: OpCodeComponent
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
MainPageComponent 是主要布局,其中包括将承载 OpCodesComponent 的路由器出口。
所以路由流程应该是:AppRouterModule --> MainPageRouterModule --> AuthorizationRouterModule。
【问题讨论】:
-
主页面,看起来你的应用程序的第一页是延迟加载的?这没有意义
-
@benshabatnoam 好吧,应用程序组件仅包含一个路由器,并且根据用户的登录状态,导航会加载身份验证模块(我将其重命名为上面的功能模块,以防止身份验证之间的混淆和授权)或授权模块,这是另一个功能模块。
标签: angular lazy-loading angular-routing