Routing module stop working: Uncaught (in promise): Error: Cannot find 'xxxModule'

Routing module stop working: Uncaught (in promise): Error: Cannot find 'xxxModule'

路由模块有一个奇怪的问题。用于工作的路由模块。但是,在我用不同的模块名称在不同的文件夹中添加另一个项目路由模块后,我在尝试导航到步骤 1 时遇到此项目的错误。

错误:未捕获(承诺):错误:在'./+step1/step1.module'中找不到'Step1Module'。

step1.module:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { AbcComponent } from './abc.component';
import { StepGuardService } from './shared/step-guard/step-guard.service';

const routes: Routes = [
  {
    path: '', component: AbcComponent, children: [
      {
        path: '',
        redirectTo: 'step1',
        pathMatch: 'full'
      },
      {
        path: 'step1',
        loadChildren: './+step1/step1.module#Step1Module',
        data: {
          preload: true,
          stepNumberOnNavigator: 1
        },
        canActivate: [StepGuardService]
      },
      {
        path: 'step2',
        loadChildren: './+step2/step2.module#Step2Module',
        data: {
          preload: true,
          stepNumberOnNavigator: 2
        },
        canActivate: [StepGuardService]
      }
    ]
  }
];

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

要解决此问题,我必须在

行中使用完全相同的字母(基本上是复制和粘贴)重新键入模块名称 "Step1Module"
loadChildren: './+step1/step1.module#Step1Module',

并保存文件。然后错误将消失,项目将是 运行。我不明白这是怎么回事。由于实际上没有任何改变,我无法将任何内容推送到 git 来解决服务器端的问题。

任何帮助将不胜感激!

谢谢!

更新:第 1 步和第 2 步的路由模块

步骤 1-routing.module.ts:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { Step1Component } from './step1.component';

const routes: Routes = [
  {
    path: '',
    component: Step1Component,
    data: {
      bannerTitle: 'xxx',
      pageTitle: 'xxx'
    }
  }
];

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

step2-routing.module.ts:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { Step2Component } from './step2.component';
import { Step2aComponent } from '../+step2/step2a/step2a.component';
import { QuestionnaireDetailComponent } from './questionnaire-detail/questionnaire-detail.component';
import { EligibilityDeclineComponent } from './eligibility-decline/eligibility-decline.component';

const routes: Routes = [
  {
    path: '',
    component: Step2aComponent,
    data: {
      bannerTitle: 'xxx',
      pageTitle: 'xxx'
    }
  },
  {
    path: 'eligibility',
    component: Step2Component,
    data: {
      bannerTitle: 'xxx',
      pageTitle: 'xxx'
    }
  },
...
  }
];

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

请将完整路径应用到您的模块。在 step1.module 文件中将此行更改为以下内容:

 children: [
    {
      path: 'dashboard',
      loadChildren: 'app/components/dashboard/dashboard.module#DashboardModule'
    }
   ]

这些只是示例数据,请替换您的数据。 让我们试试这个,请告诉我。

注意:- 路径开始 app/path/to/module/ 就像这个完整路径。

如有疑问,请访问这些网站并注意 loadChildren

https://scotch.io/tutorials/lazy-loading-in-angular-v2

https://angular.io/guide/lazy-loading-ngmodules

希望这能解决您的问题。

谢谢,

卡南穆图。