モジュールで定義されているルートコンポーネント(EducationComponent)で定義されているルーターコンセントにロードされる一連のナビゲーションアイテムと子ルートを読み込むngModule(EducationModule)を作成しました。モジュールで定義されている機能を別のコンポーネント(AuthenticatedComponent)の子ルートにしたい場合を除き、すべてがうまくいっています。つまり、モジュールで定義されたルーティングを、ルートレベルで定義されたルートへの子ルートとして追加する必要があります。これはルータ3を使用して可能ですか?
EducationModuleで定義されたルートをAuthenticatedComponentで定義されているルータアウトレットにロードすることを願っていますが、ルートAppComponentテンプレートのルータアウトレットにロードされています。以下のルート定義を参照してください。
app.routes.ts - AppModuleにロードされたメインルート
{
path: '', component: AuthenticatedComponent, canActivate: [AuthGuard],
children: [
{
path: 'profile/education',
loadChildren: 'app/modules/education/education-module#EducationModule'
},
education.routing.ts - EducationModuleのルート
const educationRoutes: Routes = [
{
path: 'profile/education',
component: EducationComponent,
children: [
{ path: '', component: WebinarsComponent },
{ path: 'webinars', component: WebinarsComponent },
{ path: 'programs', component: ProgramsComponent },
{
path: 'courses',
component: CoursesComponent,
resolve: {
courses: CoursesResolve
}
}
]
}
];
export const educationRouting: ModuleWithProviders = RouterModule.forChild(educationRoutes);
私は最初のルートはeducationRoutes
親にすでに存在しているため、プロフィール/教育接頭辞を付けてはいけませんAppModule
)。
私は通常あなたが記述したのと同じシナリオを使用し、それは動作します。
これを試して:
const educationRoutes: Routes = [{
path: '' // prefix is already specified in AppModule,
component: EducationComponent,
children: [
{ path: '', component: WebinarsComponent },
{ path: 'webinars', component: WebinarsComponent },
{ path: 'programs', component: ProgramsComponent },
{
path: 'courses',
component: CoursesComponent,
resolve: {
courses: CoursesResolve
}
}
]
}
];
export const educationRouting: ModuleWithProviders = RouterModule.forChild(educationRoutes);