首页 > 解决方案 > Angular(7)加载错误的惰性模块

问题描述

以下是我热切的 HomeModule 中的路线,它位于 AppModule 的下方:

RouterModule.forChild([
  {
    path: '',
    component: HomeComponent,
    children: [
      {
        path: 'welcome',
        component: WelcomeComponent
      },
      {
        path: 'data',
        loadChildren: '@libs/data#DataModule',
        data: {
          expectedPermission: environment.routePermissions.data
        },
        canLoad: [PermissionGuard]
      },
      // {
      //   path: 'data-two',
      //   loadChildren: '@libs/data/src#DataTwoModule',
      //   data: {
      //     expectedPermission: environment.routePermissions.dataTwo
      //   },
      //   canLoad: [PermissionGuard]
      // },
      {
        path: '**',
        redirectTo: '',
        pathMatch: 'full'
      }
    ]
  }
]),

以下是 DataTwoModule 中的内容:

const routes: Routes = [
  {
    path: `maintain/edit/:id`,
    component: DataTwoEditComponent
  },
  {
    path: 'list',
    component: DataTwoListComoponent
  }
];

在数据模块中:

const routes: Routes = [
  {
    path: `maintain/edit/:id`,
    component: DataEditComponent
  },
  {
    path: 'list',
    component: DataListComoponent
  }
];

enableTracing 向我显示 url 已正确解析, NavigationEndBASEURL/home/data/list尚未 Angular 为我呈现 DataTwoListComoponent。正如您在 HomeComponent 中看到的,我什至注释掉了 DataTwoModule 的路径。它怎么可能仍然提供?只有当我从 DataTwoModule 中注释掉路由时,Angular 才能正确地为我提供 DataModule。

组件链接正确(@libs 部分);该应用程序以前可以运行;我只是更改了一些路线名称。路由也不会从文件中导出,因此不会混淆。这里发生了什么?除了使用 enableTracing 之外,我该如何调试它?

标签: angular

解决方案


推荐阅读