Ленивая загрузка одного и того же модуля с разных путей - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть следующее app-routing.module.ts:

  {
    path: 'discover',
    loadChildren: () => import('./components/platform/user-profile/platform.module').then(m => m.PlatformModule)
  },
  {
    path: ':userRoute',
    loadChildren: () => import('./components/platform/user-profile/platform.module').then(m => m.PlatformModule)
  },

Моя цель состоит в том, чтобы / Discover должен открыть DiscoverPageComponent из PlatformModule

/ userName1 должен открыть UserPageComponent из PlatformModule

My platform-routing.module.ts содержит следующее:

  {
    path: '',
    component: UserProfileComponent,
  },
  {
    path: 'discover',
    component: DiscoverPageComponent,
  },

Это не работает, так как / Discover всегда открывает UserProfileComponent вместо DiscoverPageComponent. Я могу открыть DiscoverPageComponent только из / userName1 / Discover

Как эти два разных маршрута могут открыть их конкретный c компонент из одного и того же ленивого загруженного модуля?

Stackblitz: https://stackblitz.com/edit/angular-w3rc5g Пожалуйста, посмотрите / откройте для себя и / anyUserName1

1 Ответ

1 голос
/ 27 апреля 2020

Попробуйте приведенный ниже пример кода, внесите изменения в свои модули маршрутизации

В app-routing.moudle.ts:

const routes: Routes = [
  {
    path: '',
    loadChildren: () => import('./platform/platform.module').then(m => m.PlatformModule)
  },
];

В platform-routing.module.ts:

const routes: Routes = [
  {
    path: "user",
    children: [
      {
        path: ":user",
        component: UserProfileComponent
      }
    ]
  },
  {
    path: "discover",
    component: DiscoverComponent
  },
  {
    path: "",
    redirectTo: "discover",
    pathMatch: "full"
  }
];
  1. http://localhost: 4200 / обнаружение
  2. http://localhost: 4200 / пользователь / 1
...