【发布时间】:2016-08-31 02:13:36
【问题描述】:
我正在尝试将自己创建的服务和 angular2 Http 服务注入到我的自定义 HttpRest 服务中。
使用
@Inject(Http) public _http: Http
工作正常,但是当我尝试注入另一个自制服务时,出现以下错误:
EXCEPTION: Cannot resolve all parameters for 'HttpRest'(Http @Inject(Http), undefined @Inject(undefined)). Make sure that all the parameters are decorated with Inject or have valid type annotations and that 'HttpRest' is decorated with Injectable.
出于某种原因 UserIds 未定义,即使导入成功。 我的定制服务:
@Injectable()
export class UserIds{
private _signature_id:string;
private _role_id:number;
get signature_id():string{
return this._signature_id;
}
set signature_id(id:string){
this._signature_id = id;
}
get role_id():number{
return this._role_id;
}
set role_id(id:number){
this._role_id = id;
}
}
自定义 HttpRest 服务将 Http 和 UserId 都注入:
@Injectable()
export class HttpRest{
groups;
constructor(
@Inject(Http) public _http: Http,
@Inject(UserIds) public _ids: UserIds
){}
...
}
注意!当我删除
,
@Inject(UserIds) public _ids: UserIds
我没有收到错误。
我错过了什么?
更新
问题实际上是由于我试图理解的一些未知原因,在构造函数参数中未定义 UserIds,所以这个问题的标题变得无关紧要。它应该是“在构造函数参数中未定义导入的服务”。
请参考我在这篇文章后面对这个问题的回答。
更新:
请参考讨论此问题的问题。
Using index.ts file to export class causes undefined in injected constructor
【问题讨论】:
标签: javascript typescript angular angular2-services