angular: подстановочный маршрут загружен вместо маршрута в быстро загружаемых модулях - PullRequest
0 голосов
/ 07 августа 2020

У меня есть приложение с 2 функциональными модулями: 1 загружается лениво, а 1 загружается с нетерпением.

В маршрутизации моего приложения я хочу добавить маршрут с подстановочными знаками «**» для страницы, не найденной "сценарий.

const routes: Routes = [
  { path: '', loadChildren: () => import('./landing-page/landing-page.module').then(m => m.LandingPageModule) },
  { path: '**', redirectTo: '', pathMatch: 'full' }
];

Это нормально работало с ленивым загружаемым модулем.

Теперь я добавил нетерпеливо загруженный модуль с его собственным модулем маршрутизации. Таким образом, моя «маршрутизация приложений» выше остается прежней. Я просто импортирую загруженный модуль в свой модуль приложения. Это конфигурация маршрутизации моего нетерпеливо загруженного модуля:

const routes: Routes = [
  { 
    path:"people", 
    children: [
      { path: "invite", component: InviteComponent}
    ]}
];

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

Моя проблема:

  • Когда я сохраняю маршрут с подстановочными знаками в маршрутизации моего приложения, маршрут людей / приглашения никогда не достигнуто.
  • Когда я удаляю маршрут с подстановочными знаками, люди / приглашенные становятся доступны.

Итак, как я могу добавить сценарий «страница не найдена»?

Ответы [ 2 ]

0 голосов
/ 09 августа 2020

Я нашел решение, которое намного лучше моего предыдущего ...

Убедитесь, что в app.module вы поместили модуль маршрутизации за быстро загруженным модулем!

 imports: [
    BrowserModule,
    SharedModule,
    PeopleModule, /* Eagerly loaded module with routing*/
    UsersModule,
    BrowserAnimationsModule,
    AppRoutingModule /* Make sure the app routing module is imported after the eagerly loaded module!! */
 ]
0 голосов
/ 07 августа 2020

Я мог бы найти решение, но я сомневаюсь, что это лучшее возможное решение ...

Когда я добавляю маршрут с подстановочными знаками, который перенаправляет на маршрут root в моем с нетерпением загруженном модуле функций, тогда все вроде работает ...

const routes: Routes = [
  { 
    path:"people", 
    children: [
      { path: "invite", component: InviteComponent}
    ]
  },
  { path:"**", redirectTo: '/', pathMatch:"full"}
];

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

...