【发布时间】:2018-06-13 10:50:35
【问题描述】:
在我的app.module.ts 文件中,我(急切地)导入LoginModule,它具有自己的路由模块(login-routing.module.ts - 假设我无法更改它)
我还导入了另一个路由模块(AppRoutingModule - 处理所有惰性模块)。
app.module.ts:
@NgModule({
bootstrap : [AppComponent],
imports : [
...
LoginModule,
AppRoutingModule
...
]...
login-routing.module.ts 文件有自己的路由:
login-routing.module.ts :
const LoginRoutes: Routes = [
{
path : 'welcome',
component: WelcomeComponent
},
{
path : 'loginSms',
component: LoginSmsComponent
},
{
path : 'loginPassword',
component: LoginPasswordComponent
},
{
path : 'passwordExpired',
component: PasswordExpiredComponent
}
];
@NgModule({
...
})
export class LoginRoutingModule
{
}
而AppRoutingModule 有:
const routes: Routes = [
/* { path : "", redirectTo: "/welcome", pathMatch : "full"},*/
{
path : 'app',
children: [
{
path : "home",
loadChildren: "~/modules/home/home.module#HomeModule"
},
{
path : "payments",
loadChildren: "~/modules/payments/payments.module#PaymentsModule"
}
]
}
...
请注意,我使用前缀为 app 的 ComponentLess 路由只是为了组织路由。
那么问题出在哪里?
我想将登录路由添加到 "app routes" ,这样我就可以访问登录路由:
app/login/...
换句话说 - 现在 - AppRoutingModule 应该是:
path : 'app',
children: [
{
path : "home",
loadChildren: "~/modules/home/home.module#HomeModule"
},
{
path : "payments",
loadChildren: "~/modules/payments/payments.module#PaymentsModule"
},
{
path : "login",
//but how o I load all `login-routing.module.ts` routes here ?
},
]
但是LoginModule应该是渴望加载而不是延迟加载,所以我不能使用loadChildern。
问题:
简而言之,我如何访问登录模块路由:
app/login/loginPassword
而不是
/loginPassword
?
【问题讨论】:
-
如果这样做的真正原因是让 LoginModule 热加载,你也可以使用路由器的
preloadingStrategy -
@PierreDuc 哦。所以你的意思是添加它,就好像它是惰性的 (
loadChildren),只是添加preloadingStrategy提示? -
对了,要我发一个例子吗?
-
@PierreDuc 不,谢谢。我得到了它。顺便说一句,我看到了这个
answerhere also - 但他只加载了数组路由而不是路由 module 。我不在我的应用程序中使用 - 普通路由数组。我到处都使用路由 modules。 -
别难过,一切都会好的
标签: javascript angular