在我的Angular 2应用程序中,我有两个依赖于彼此的服务(来自服务B的服务A调用方法,反之亦然).
@H_403_1@以下是相关代码:
@H_403_1@在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) {} }
运行应用程序会导致以下错误:
EXCEPTION: Cannot resolve all parameters for@H_403_1@ ‘Temp2Service'(undefined). Make sure that all the parameters are@H_403_1@ decorated with Inject or have valid type annotations and that@H_403_1@ ‘Temp2Service’ is decorated with Injectable
当在其中一个服务中注释构造函数时,应用程序运行正常.@H_403_1@所以我猜测这两个服务的“交叉参考”是造成这个问题的.@H_403_1@你有什么想法吗?@H_403_1@还是我的做法已经错了?
感谢您的建议!