我有一个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] 删除。
我来说两句