首页 > 解决方案 > 默认路由模块与其他所有模块一起加载

问题描述

我已将延迟加载的 Home 模块设置为空路径。但现在的问题是,每当我尝试加载不同的模块时,例如通过 /new/auth 之类的 url 登录,主模块也会随之加载。

const routes: Routes = [
  {
    path: '', component: MainLayoutComponent,
    children: [
      {
        path: '',
        loadChildren: './homepage/homepage.module#HomepageModule'
      },
      {
        path: 'new/auth',
        loadChildren: './auth/auth.module#AuthModule'
      },
    }
 }

由于我使主页模块延迟加载,因此我希望主页模块应仅在空路径上加载。但它在每条路线上都加载。

我检查了应用程序模块或任何其他根模块等所有地方,并且没有导入主模块。

标签: angulartypescriptlazy-loadingangular-router

解决方案


children数组中项目的顺序很重要。

尝试

const routes: Routes = [
  {
    path: '', component: MainLayoutComponent,
    children: [
     {
        path: 'new/auth',
        loadChildren: './auth/auth.module#AuthModule'
      },
      {
        path: '',
        loadChildren: './homepage/homepage.module#HomepageModule'
      },
    }
 }

推荐阅读