为什么我在升级到 Angular 9 时遇到循环依赖问题
Why I am getting cyclic dependency issue when I upgrade to Angular 9
我有这个文件,它的代码是这样的
import { Injectable } from '@angular/core';
import { I18n } from '@ngx-translate/i18n-polyfill';
import { isNumber } from 'lodash';
import { ConfirmationService, MessageService } from 'primeng/api';
export enum ConfirmationType {
Delete,
Navigate,
Unsaved,
}
export enum SuccessMessage {
Cloned,
Created,
Deleted,
Saved,
Reverted,
}
@Injectable()
export class MessagingService {
constructor(
private readonly _i18n: I18n,
// tslint:disable-next-line:ban-types
private readonly _messageService: MessageService,
private readonly _confirmationService: ConfirmationService,
) { }
我得到的错误是:
错误:无法实例化循环依赖!消息服务
发生此错误是因为您也在 MessageService
中实例化了 MessagingService
。
这样你创建了一个实例化循环。
MessagingService
-> MessageService
-> MessagingService
-> ...
您必须以一种方式重构您的代码,使它们无需相互实例化即可访问所需的数据和函数。
我有这个文件,它的代码是这样的
import { Injectable } from '@angular/core';
import { I18n } from '@ngx-translate/i18n-polyfill';
import { isNumber } from 'lodash';
import { ConfirmationService, MessageService } from 'primeng/api';
export enum ConfirmationType {
Delete,
Navigate,
Unsaved,
}
export enum SuccessMessage {
Cloned,
Created,
Deleted,
Saved,
Reverted,
}
@Injectable()
export class MessagingService {
constructor(
private readonly _i18n: I18n,
// tslint:disable-next-line:ban-types
private readonly _messageService: MessageService,
private readonly _confirmationService: ConfirmationService,
) { }
我得到的错误是:
错误:无法实例化循环依赖!消息服务
发生此错误是因为您也在 MessageService
中实例化了 MessagingService
。
这样你创建了一个实例化循环。
MessagingService
-> MessageService
-> MessagingService
-> ...
您必须以一种方式重构您的代码,使它们无需相互实例化即可访问所需的数据和函数。