Angular 8 Маршрутизация с дочерними маршрутами в подмодулях - PullRequest
0 голосов
/ 04 апреля 2020

В моем приложении у меня есть «родительский» компонент (WorkspaceComponent), который определяет общий макет и выполняет некоторые каркасы для приложения (фактически это оболочка для большинства содержимого). В идеале я бы хотел, чтобы этот компонент не занимал ни один из URL.

Каждый из «дочерних» маршрутов определяется в их собственном модуле маршрутизации.

Конфигурация родительского маршрута : (app-routing)

const routes: Routes = [
  {path: 'denied', component: DenialComponent},
  {path: 'workspace', component: WorkspaceComponent, children: [
      {path: 'search', loadChildren: () => import('./search/search.module').then(m => m.SearchModule)},
      {path: 'files', loadChildren: () => import('./files/files.module').then(m => m.FilesModule)},
      {path: 'folders', loadChildren: () => import('./folders/folders.module').then(m => m.FoldersModule)},
      {path: '', redirectTo:'search', pathMatch:'full'}
    ]},
  {path: '', redirectTo:'workspace', pathMatch:'full'}
];

Конфигурация дочернего маршрута - (поиск)

const searchRoutes: Routes = [{
  path: '', component: SearchComponent, children: [
    {path: 'new', component: SearchEditComponent, pathMatch:'prefix'},
    {path: 'edit/:queryId', component: SearchEditComponent, pathMatch:'prefix'},
    {path: 'convert/:queryId', component: SearchConvertComponent, pathMatch:'prefix'},
    {path: 'details/:queryId', component: SearchDetailsComponent, pathMatch:'prefix'},
    {path: '', redirectTo: 'new', pathMatch: 'full'}
  ],
  runGuardsAndResolvers: 'always'
}];

Другие «дочерние» маршруты (файлы и папки) ) в значительной степени mimi c конфигурация searchRoutes.

Основная проблема, с которой я сталкиваюсь и нуждающаяся в некоторой помощи, заключается в следующем:

  • Для пути родительского компонента ('рабочее пространство '), если я буду использовать' 'в качестве пути вместо' рабочей области ', я буду ожидать загрузки фактической рабочей области, но вместо этого будет загружен один из дочерних маршрутов

Как настроить маршрутизация так:

  • Я могу перейти к http://localhost: 8080 / search и получить родительский компонент (WorkspaceComponent), также загруженный без необходимости иметь «рабочее пространство» в URL?
  • Пользователь может перейти к root URL-адресу приложения (т. Е. http://localhost: 8080 ) и он автоматически направит на http://localhost: 8080 / search (при условии, что мы можем сделать это без указания «рабочего пространства» в пути)

1 Ответ

0 голосов
/ 06 апреля 2020

Итак, похоже, что порядок импорта в файле app.module.ts влиял на способ загрузки моего приложения. У меня был AppRoutingModule, перечисленный ниже моих других модулей маршрутизации компонентов. Тьфу!

...