angular :加载通配符路由而不是急切加载模块中的路由

angular : wildcard route loaded instead of route in eagerly loaded modules

我有一个包含 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 { }

我的问题是

那么如何添加“找不到页面”的场景呢?

我可能找到了解决方案,但我怀疑这是最好的解决方案...

当我在急切加载的功能模块中添加重定向到根路由的通配符路由时,似乎一切正常...

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

这个解决方案的问题是我需要在每个模块中添加一个通配符路由...似乎不是最好的解决方案...

我找到了一个比我以前的解决方案好得多的解决方案...

在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!! */
 ]