我正在嘗試將自己創建的服務&的angular2 Http服務注入到我的自定義HttpRest服務中。將多個服務插入服務 - angular2
使用
@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.
出於某種原因 用戶ID是不確定的,即使導入成功的。 我的定製服務:
@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服務IM注射既使用HTTP &用戶ID爲:
@Injectable()
export class HttpRest{
groups;
constructor(
@Inject(Http) public _http: Http,
@Inject(UserIds) public _ids: UserIds
){}
...
}
注意!當我刪除
,
@Inject(UserIds) public _ids: UserIds
我沒有得到錯誤。
我錯過了什麼?
UPDATE 這個問題實際上是用戶ID在構造函數中PARAMS的,即時通訊試圖瞭解一些未知的原因不確定,所以這個問題的標題變得無關緊要。它應該是「導入的服務在構造函數params中未定義」。
請在這個帖子後面再回答一下我對這個問題的回答。
更新:
請重新討論一個討論此問題的問題。 Using index.ts file to export class causes undefined in injected constructor
我這樣做沒有結果。 @Component({ 選擇: 「... 」 templateUrl:「 ...」, 指令:[ ROUTER_DIRECTIVES ], 提供商: ROUTER_PROVIDERS, HttpRest, 用戶ID, 提供(LocationStrategy, {useClass:HashLocationStrategy}) ] }) – wagwanJahMan