2

モジュールで定義されているルートコンポーネント(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);

1 답변


2

私は最初のルートは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);

関連する質問

最近の質問