2016-03-21 42 views
2

我閱讀了一篇關於如何將Http服務注入到Angular2應用程序的文章。Angular2 Http v.s HTTP_PROVIDERS

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])嗎?

回答

1

在Angular2中,我們不僅可以導入服務,還可以導入模塊中的指令和值(常量)。我們導入這些「TYPES」以實現TypeScript的強類型功能。所以我們可以在稍後的組件類代碼中引用它。

+0

大拇指朝下說這與強打字有關。 –

5

HTTP_PROVIDERSdeprecated

例如: - 正如this comment提到的,而不是這樣的:

@NgModule({ 
    declarations: [AppComponent], 

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

使用本

@NgModule({ 
    declarations: [AppComponent], 

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

注意:您導入imports模塊中@NgModule,而不是@Component