Angular2 Http v.s HTTP_PROVIDERS

Angular2 Http v.s HTTP_PROVIDERS

我阅读了一篇关于如何将 Http 服务注入 Angular2 应用程序的文章。

https://angular.io/docs/ts/latest/api/http/HTTP_PROVIDERS-let.html

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

@Component({
  selector: 'app',
  providers: [HTTP_PROVIDERS],
....

我以为 Http 服务已经包含在 HTTP_PROVIDERS 中了。 (如下,根据文档)。

"The providers included in HTTP_PROVIDERS include:

Http
XHRBackend
BrowserXHR - Private factory to create XMLHttpRequest instances
RequestOptions - Bound to BaseRequestOptions class
ResponseOptions - Bound to BaseResponseOptions class"

既然如此,怎么还要导入Http?我们只能做

 import {HTTP_PROVIDERS} from 'angular2/http';

另一方面,更具体地说,我们能否将组件提供者更改为 providers: [Http]? 或者在bootstrap,我们可以做bootstrap(app, [Http])吗?

在 Angular2 中,我们不仅可以导入服务,还可以从模块中导入指令和值(常量)。我们导入那些 "TYPES" 是为了实现 TypeScript 的强类型特性。所以我们稍后可以在我们的组件class代码中引用它。

HTTP_PROVIDERSdeprecated.

例如:如 this comment 中所述,而不是:

@NgModule({
  declarations: [AppComponent],

  providers:    [
    HTTP_PROVIDERS
  ],
   ...
})
export class AppModule { }

使用这个

@NgModule({
  declarations: [AppComponent],

imports: [
    HttpModule
  ],
   ...
})
export class AppModule { }

注意:您在 @NgModule 中导入 imports 中的模块,而不是 @Component