在我的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 { (...) }
服务一:
import {Injectable} from 'angular2/core';
import {Temp2Service} from './tmp2';
@Injectable()
export class TempService {
constructor (private _sessionService: Temp2Service) {}
}
服务二:
import {Injectable} from 'angular2/core';
import {TempService} from './tmp';
@Injectable()
export class Temp2Service {
constructor (private _sessionService: TempService) {}
}
运行该应用程序会导致以下错误:
例外:无法解析“ Temp2Service”的所有参数(未定义)。确保所有参数都用Inject装饰或具有有效的类型注释,并且'Temp2Service'用Injectable装饰
在其中一项服务中注释构造函数时,该应用程序运行良好。因此,我的猜测是两个服务的“交叉引用”导致了问题。
您知道这里出了什么问题吗?还是我的方法已经错误?