2016-07-27 3 views
0

컨텍스트없이 Angular2를 주입 HTTP를 : 내 REST API에 대한 POST 요청을 형성하려고하는 클래스가는 부트 스트랩

는, 호출 요청 수 있습니다. 내 앱에서 만들어진 모든 아약스 호출이이를 통해 전송됩니다. 따라서 나는 그것이 글로벌 만들 것 bootstrap(foo, [HTTP_PROVIDERS]);를 통해 HTTP를 제공하지 않고 나는 요청

코드에 주입 할 필요가 :

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) { 

    } 
} 

requester이 서비스 가정 귀하의 요청

+0

나는 여전히 같은 것을 얻는다. – ZaksBack

1

처럼 사용하거나.

서비스 requester를 사용하는 각 Component

HTTP_PROVIDERS를 참조 할 필요 :

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

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

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

누락 업체 가정이 하나

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

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

시도이

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

왜 * 요청자 * 만 HTTP_PROVIDER를 필요로 하는가? – ZaksBack

+0

필자는 주석이'주저 할 수있는'엔티티에 대한 메타 데이터로 변환되는 방식과 어떻게 든 관련이 있다고 생각합니다. 추가 정보 확인 http://blog.thoughtram.io/angular/2015/09/17/resolve-service-dependencies-in-angular-2.html –