Модуль маршрутизации перестал работать: Uncaught (в обещании): Ошибка: не удается найти «xxxModule» - PullRequest
0 голосов
/ 13 июня 2018

У меня странная проблема с модулем маршрутизации.Модуль маршрутизации используется для работы.Однако после добавления другого модуля маршрутизации проекта в другую папку с другим именем модуля я получил ошибку в этом проекте при попытке перейти к шагу 1.

Ошибка: Uncaught (в обещании): Ошибка: Не удается найти'Step1Module' в './+step1/step1.module'.

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',

и сохраните файл.Тогда ошибка исчезнет и проект будет запущен.Я не понимаю, что здесь происходит.Поскольку на самом деле ничего не изменилось, я не могу ничего сделать, чтобы исправить проблему на стороне сервера.

Любая помощь будет оценена!

Спасибо!

Обновления: модуль маршрутизации для step1 и step2

step1-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 { }

1 Ответ

0 голосов
/ 13 июня 2018

Пожалуйста, примените полный путь к вашему модулю.Измените эту строку на следующую в step1.module file:

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

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

Примечание: - Путь к началу app / path / to / module / как этот полный путь.

На ваши сомненияПосетите эти веб-сайты и обратите внимание, что loadChildren line

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

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

Я надеюсь, что это решит вашу проблему.

Спасибо,

Карнан Мутху.

...