DI с циклической зависимостью с настраиваемым HTTP и ConfigService

Я пытаюсь реализовать ConfigService для получения правильной конфигурации для правильной среды в проекте. Я в настоящее время сталкиваюсь с циклической зависимостью

(index):28 Error: (SystemJS) Provider parse errors:
    Cannot instantiate cyclic dependency! Http: in NgModule AppModule
    Error: Provider parse errors:

Я исследовал код и есть проблема, на мой взгляд:

CustomHttp

constructor(backend: XHRBackend, options: RequestOptions, public spinnerService: SpinnerService, public exceptionService: ExceptionService, public configService: ConfigService) 

ExceptionService

constructor(private _notificationService: NotificationService, private _spinnerService: SpinnerService, private _configService: ConfigService, private _router: Router)

ConfigService

constructor(private http: Http) {}

Как вы можете видеть, у меня есть циклические зависимости, показанные на этой диаграмме (без какого-либо хорошего соглашения):

введите описание изображения здесь

Мой вопрос сейчас, как это исправить? Я слышал о Injector но я не уверен, что смогу действительно использовать это в этом контексте.

Заранее спасибо за ваш ответ.

1 ответ

Решение

Я не могу разрешить циклические зависимости. Обходной путь должен ввести инжектор и приобрести экземпляр обязательно:

@Injectable()
class ConfigService {
  private http: Http;
  constructor(injector:Injector) {
    setTimeout(() => this.http = injector.get(Http);
  }
}
Другие вопросы по тегам