无法理解 angular 6 错误
Cannot understand angular 6 error
我正在将现有项目从 angular 5 移动到 angular 6,但我遇到了这个错误:
Uncaught Error: Provider parse errors:
Cannot instantiate cyclic dependency! ErrorHandler ("[ERROR ->]"): in NgModule
AppModule in ./AppModule@-1:-1
不知道循环依赖怎么判断
这是AppModule
@NgModule({
declarations: [
AppComponent
],
imports: [
SharedModule,
DialogModule,
StoreModule.forRoot(allReducers),
EffectsModule.forRoot([DossierEffects]),
StoreDevtoolsModule.instrument({
maxAge: 5
}),
AppRoutingModule,
DashboardModule
],
providers: [
{
provide: ErrorHandler,
useClass: GlobalErrorHandler
},
MessageService,
UserService,
DossierService,
FavouriteService,
SettingsService,
ApplicationInfoService,
StoreService,
PermissionsService,
DeadlineService
],
bootstrap: [AppComponent]
})
export class AppModule {}
循环依赖意味着有两个服务(提供者)在它们的依赖关系中相互依赖,例如假设您有 Service1
和 Service2
:
service1.ts:
@Injectable({providedIn:'root'})
export class Service1 {
constructor(private service2: Service2){}
}
service2.ts:
@Injectable({providedIn:'root'})
export class Service2 {
constructor(private service1: Service1){}
}
所以angular不能创建它们,因为它需要Service1
个实例来创建Service2
个实例,但同时它需要Service2
个实例来创建Service1
实例。
您的情况可能更复杂,但请寻找此类依赖关系
我正在将现有项目从 angular 5 移动到 angular 6,但我遇到了这个错误:
Uncaught Error: Provider parse errors:
Cannot instantiate cyclic dependency! ErrorHandler ("[ERROR ->]"): in NgModule
AppModule in ./AppModule@-1:-1
不知道循环依赖怎么判断
这是AppModule
@NgModule({
declarations: [
AppComponent
],
imports: [
SharedModule,
DialogModule,
StoreModule.forRoot(allReducers),
EffectsModule.forRoot([DossierEffects]),
StoreDevtoolsModule.instrument({
maxAge: 5
}),
AppRoutingModule,
DashboardModule
],
providers: [
{
provide: ErrorHandler,
useClass: GlobalErrorHandler
},
MessageService,
UserService,
DossierService,
FavouriteService,
SettingsService,
ApplicationInfoService,
StoreService,
PermissionsService,
DeadlineService
],
bootstrap: [AppComponent]
})
export class AppModule {}
循环依赖意味着有两个服务(提供者)在它们的依赖关系中相互依赖,例如假设您有 Service1
和 Service2
:
service1.ts:
@Injectable({providedIn:'root'})
export class Service1 {
constructor(private service2: Service2){}
}
service2.ts:
@Injectable({providedIn:'root'})
export class Service2 {
constructor(private service1: Service1){}
}
所以angular不能创建它们,因为它需要Service1
个实例来创建Service2
个实例,但同时它需要Service2
个实例来创建Service1
实例。
您的情况可能更复杂,但请寻找此类依赖关系