2016-07-27 50 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 –