2016-07-27 49 views
0

語境:Angular2進樣的Http沒有引導

我有一個是要形成對我的REST API POST請求的一類,讓叫它請求者。在我的應用程序中進行的每個ajax調用都將通過此發送。因此,我不想通過提供的Http bootstrap(foo, [HTTP_PROVIDERS]);這將使其成爲全球和我需要它注入到請求者

代碼:

import {Http} from '@angular2/http'; 
@Injectable() 
@Component({providers: [Http]}) 
export class requester { 
    constructor(private http:Http){} 
    ... 
} 

錯誤:

ORIGINAL EXCEPTION: No provider for Http! (requestor -> Http)

+1

'@Injectable()'和'@Component()'看起來很怪異起來。很可能你必須刪除'@Component()'東西 –

回答

0

像這樣解決

import { Http, Response } from '@angular/http'; 
export class LoginService { 

    constructor(private http: Http) { 

    } 
} 

或使用這樣的

public constructor(@Inject(Http) private http: Http) {} 
+0

我仍然得到同樣的東西 – ZaksBack

1

試試這個

import {Http, HTTP_PROVIDERS} from '@angular2/http'; 

    @Component({ 
      .... 
      providers: [HTTP_PROVIDERS] 
      ....}) 
    export class requester { 
     constructor(private http:Http){} 
     ... 
    } 

假設失蹤提供商您的要求

0

假設requester是一種服務。

它使用你的服務requester每個Component必須引用HTTP_PROVIDERS

import {HTTP_PROVIDERS} from '@angular2/http'; 

@Component({ 
    ... 
    providers: [HTTP_PROVIDERS, requester], 
    ... 
}) 

export class MyComponent{ 
    constructor(private _req: requester) { 
    } 
} 
+0

爲什麼不能請求者*是唯一需要HTTP_PROVIDER的請求者? – ZaksBack

+0

我猜這跟註釋轉換爲Injectable entern元數據的方式有些關係。查看更多信息http://blog.thoughtram.io/angular/2015/09/17/resolve-service-dependencies-in-angular-2.html –