Angular 7 вложенных ленивых загруженных маршрутов детей - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть следующий код:

app-routing.module.ts

const routes: Routes = [

  {
    path: 'login',
    component: LoginComponent
  },
  {
    path: 'user',
    loadChildren: './modules/user/user.module#UserModule',
    canActivate: [AuthGuardService]
  },
  {
    path: 'config',
    loadChildren: './modules/config/config.module#ConfigModule',
    canActivate: [AuthGuardService]
  },
  {
    path: '',
    redirectTo: '/user',
    pathMatch: 'full'
  },
  {
    path: '**',
    redirectTo: '/user',
    pathMatch: 'full'
  }
];

@NgModule({
  imports: [RouterModule.forRoot(routes, {enableTracing: true})],
  exports: [RouterModule]
})
export class AppRoutingModule {
}

И выход маршрутизатора приложений как

<router-outlet></router-outlet>

config-routing.module.ts

const configRoutes: Routes = [
  {
    path: 'lookups',
    loadChildren: './lookup/lookup.module#LookupModule',
    outlet: 'config',
    canActivate: [AuthGuardService]
  },
  {
    path: '',
    component: ConfigComponent,
    canActivate: [AuthGuardService],
  },
  {
    path: '**',
    redirectTo: '',
    pathMatch: 'full'
  }
];

@NgModule({
  imports: [RouterModule.forChild(configRoutes)],
  exports: [RouterModule]
})
export class ConfigRoutingModule {

}

И выход Config Router как

<router-outlet name="config></router-outlet>

lookup-routing.module.ts

const lookupRoutes: Routes = [
  {
    path: ':id/options',
    component: LookupOptionComponent,
    canActivate: [AuthGuardService]
  },
  {
    path: '',
    component: LookupComponent,
    canActivate: [AuthGuardService],
  },
  {
    path: '**',
    redirectTo: '',
    pathMatch: 'full'
  }
];

@NgModule({
  imports: [RouterModule.forChild(lookupRoutes)],
  exports: [RouterModule]
})
export class LookupRoutingModule {

}

Внутри ConfigComponent я делаю this.router.navigate([ $ {путь} ], {relativeTo: this.route});, где path равно lookups.

Проблема возникает всякий раз, когда я направляюсь к /config/lookups или /config/lookups/1/options он перенаправляет на /config. Я вижу NavigationEnd {id: 1, url: "/config/lookups", urlAfterRedirects: "/config"} в консоли, и очевидно, что он перенаправляет в config. Я не могу понять, почему он перенаправляет и не может go для поиска компонента. Я рассмотрел другие вопросы здесь и безрезультатно. Любая помощь будет оценена. Спасибо!

1 Ответ

0 голосов
/ 12 апреля 2020
Change the config routes like below. You need to add your child routes in your module under children array

const configRoutes: Routes = [
  {
    path: '',
    component: ConfigComponent,
    canActivate: [AuthGuardService],
    children : [
         {
             path: 'lookups',
             loadChildren: './lookup/lookup.module#LookupModule',
             outlet: 'config',
             canActivate: [AuthGuardService]
         },
         {
              path: '**',
              redirectTo: '',
              pathMatch: 'full'
         }
    ]
  }  
];
...