2016-03-21 22 views
2

Http hizmetinin Angular2 uygulamasına nasıl enjekte edileceğine dair bir makale okudum. 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], 
.... 

Zaten HTTP_PROVIDERS dahil hizmet Http düşündük. (aşağıdaki gibi, belgeye göre).

"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" 

Bu durumda, Http'yi nasıl içe aktarmamız gerekiyor? biz sadece

import {HTTP_PROVIDERS} from 'angular2/http'; 

Öte yandan yapabilir, biz providers: [Http] bileşen sağlayıcıları değiştirebilir, daha spesifik olmak? Veya önyüklemede bootstrap(app, [Http]) yapabilir miyiz? Angular2'de

cevap

1

, bir modülden yalnızca hizmetleri değil direktifleri ve değerleri de (sabitleri) alabiliriz. TypeScript'in güçlü tip özelliğini yerine getirmek için "TYPES" yi ithal ediyoruz. Bu yüzden daha sonra bileşen sınıf kodumuzda buna başvurabiliriz.

+0

Bunun güçlü bir yazımla ilgili olduğunu söylediğiniz için. –

5

HTTP_PROVIDERSdeprecated'dir. Bu yerine this comment belirtildiği gibi

ör .::

@NgModule({ 
    declarations: [AppComponent], 

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

kullanımı bu

@NgModule({ 
    declarations: [AppComponent], 

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

Not: @NgModule değil @Component yılında imports modülü içe.