带有延迟加载子模块的Angular 2项目在首次尝试编译时未解析子模块

威廉·摩尔

我有一个Angular 2(angular cli 1.3.2)项目,该项目分解为带有延迟加载的多个模块。主模块使用以下代码在路由器内部加载子模块:

{
    path: 'module2',
    loadChildren: 'modules/module2/module2.module.ts#Module2Module',
    canActivate: [Guard]
},

当我运行ng serve它时,会显示以下错误消息:

ERROR in Could not resolve "modules/module2/module2.module.ts" from "<..>/app/app.module.ts".

当我在项目中保存任何文件(触发重新构建)时,构建成功,并且两个模块均按预期工作。我什至不需要更改文件!

有没有解决此问题的方法,或者这可能是错误?

谢谢

威廉·摩尔

通过删除延迟加载找到了解决方法:

app.module.ts文件中,同时包含app.router.ts和和的导入modules/module2/module2.module.ts然后在“ @NgModule”的“ includes”部分中,确保Module2在主App路由器之前:

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

import { appRoutes } from './app.router';
import { Module2 } from './modules/module2/module2.module';

// Other imports

@NgModule({
  declarations: [..],
  imports: [
    ..,
    Module2,
    RouterModule.forRoot(appRoutes)
  ],
  providers: [..],
  entryComponents: [..],
  bootstrap: [..]
})
export class AppModule {  }

我看到的错误是由于导入顺序不正确所致,如Angular Routing Guide里程碑3中所指定

感谢评论提出建议的人们!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章