В моем приложении Angular 2 у меня есть два сервиса, которые зависят друг от друга (сервис A вызывает методы из сервиса B и наоборот).
Вот соответствующий код:
app.component.ts
:
import {Component} from 'angular2/core';
import {TempService} from '../services/tmp';
import {Temp2Service} from '../services/tmp2';
@Component({
selector: 'my-app',
templateUrl: 'app/app/app.component.html',
providers: [TempService, Temp2Service]
})
export class AppComponent { (...) }
Сервис 1:
import {Injectable} from 'angular2/core';
import {Temp2Service} from './tmp2';
@Injectable()
export class TempService {
constructor (private _sessionService: Temp2Service) {}
}
Сервис 2:
import {Injectable} from 'angular2/core';
import {TempService} from './tmp';
@Injectable()
export class Temp2Service {
constructor (private _sessionService: TempService) {}
}
Запуск приложения приводит к следующей ошибке:
ИСКЛЮЧЕНИЕ: не удается разрешить все параметры для Temp2Service (не определено). Убедитесь, что все параметры оформлены с помощью Inject или имеют допустимые аннотации типов, а Temp2Service - с Injectable.
При комментировании конструктора в одном из сервисов приложение работает нормально. Поэтому я предполагаю, что проблема заключается в "перекрестной ссылке" двух сервисов.
У вас есть идея, что здесь происходит не так? Или мой подход уже неправильный?