Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 路由模块停止工作:未捕获(承诺中):错误:找不到';xxx模块';_Javascript_Angular_Angular4 Router_Angular Module - Fatal编程技术网

Javascript 路由模块停止工作:未捕获(承诺中):错误:找不到';xxx模块';

Javascript 路由模块停止工作:未捕获(承诺中):错误:找不到';xxx模块';,javascript,angular,angular4-router,angular-module,Javascript,Angular,Angular4 Router,Angular Module,我对路由模块有一个奇怪的问题。用于工作的路由模块。但是,在我将另一个项目路由模块添加到另一个具有不同模块名称的文件夹中后,我在尝试导航到步骤1时在该项目上出错 错误:未捕获(承诺中):错误:在“/+step1/step1.module”中找不到“Step1Module” 步骤1.1模块: import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import

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

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

步骤1.1模块:

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 { }
为了解决这个问题,我必须用完全相同的字母(基本上是复制和粘贴)在

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 { }
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 { }
步骤2-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 { }
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.module文件中将此行更改为以下内容:

 children: [
    {
      path: 'dashboard',
      loadChildren: 'app/components/dashboard/dashboard.module#DashboardModule'
    }
   ]
这些只是示例数据,请替换您的数据。 让我们试试这个,请让我知道

注意:-路径开始app/path/to/module/与此完整路径类似

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

我希望这能解决你的问题

谢谢


Karnan Muthu。

我们可以看一下模块Step2模块的路由定义吗?你确定你在这篇文章中使用了forChild而不是forRoot吗?@WilliamKLEIN我刚刚在我的文章中添加了两个路由定义。是的,我肯定我用的是儿童用的。谢谢@你的问题已经用我的答案解决了。因此,请标记为答案。谢谢,完整路径有效。不幸的是,在经过团队讨论后,我们决定不朝那个方向走,因为我们更喜欢路由模块具有相对于延迟加载模块的相对路径。我们通过重命名新添加的项目路由模块解决了这个问题。这看起来像Angular CLI中的一个错误,当有两个模块具有相同的名称时,即使它们位于完全不同的文件夹中,也无法识别正确的模块。如果这是您的提问场景,请标记为“回答并向上投票”。