嗨,我有一个奇怪的问题,当我使用角度5时,这并不是问题。
这是情况
在我拥有的应用路由模块中
{
path: 'moduleA',
pathMatch: 'full',
loadChildren: './modules/moduleA.module#moduleA'
},
{
path: 'moduleB',
pathMatch: 'full',
loadChildren: './modules/moduleB.module#moduleB'
},
然后我有一个共享模块,该模块只有一个要评估的组件,并且已声明并导出了..
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RatingComponent } from './components/rating/rating.component';
import { RatingService } from './services/rating.service';
@NgModule({
imports: [
CommonModule
],
declarations: [
RatingComponent
],
exports: [
RatingComponent
],
providers: [
RatingService
]
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [
RatingService
]
};
}
}
在两个模块中都导入了共享模块...当我运行ng serve --aot时,该应用程序运行良好,但是当我更改了Shared,ModuleA或ModuleB的代码时,CLI可以成功编译,但是在浏览器中得到错误:
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'call' of undefined
TypeError: Cannot read property 'call' of undefined at __webpack_require__ (bootstrap:81)
我必须停止cli并再次运行它,它才能正常工作。有谁知道可能是什么问题?
它仅在版本6(尝试6.0.7和6.1.0)上发生,而如果我在版本5上尝试它,则没有任何问题。另外,如果我从ModuleA或B中排除了SharedModule,那么它将很好用,但是在那种情况下,该模块就不会共享。
谢谢
答案 0 :(得分:0)
经过深入分析后,发现即使该应用程序也可以处理模块的延迟加载,为了能够正常工作而不会出现上述问题,事实证明,在app.module.ts文件中,我必须导入我使用lazyload加载的所有模块。