angular2 resolAndCreate HTTP - отсутствует HTTP_PROVIDERS в RC7

Еще в RC4, когда существовал HTTP_PROVIDERS, я мог создать свой собственный экземпляр http, используя

export function createHTTP(url:string, headers?:Headers){
  let injector = ReflectiveInjector.resolveAndCreate([
    myHttp,
    {provide:'defaultUrl', useValue:url},
    {provide:'defaultHeaders', useValue:headers || new Headers()},
    ...HTTP_Providers
  ])
  return injector.get(myHttp)
}

myHttp был оберткой для Http

@Injectable()
export class myHttp{
  constructor(@Inject('defaultUrl) private url:string, @Inject('defaultHeaders) private headers:Headers, private http:Http){}

  get()
  put()...
}

Теперь, когда HTTP_PROVIDERS устарел и удален, как мне его предоставить?

Спасибо!

1 ответ

Решение
@NgModule({
  imports: [HttpModule],
  ...
})
class AppModule {}

или скопируйте определение HTTP_PROVIDERS из источника Angular2 в ваш источник и используйте его там, как раньше.

const HTTP_PROVIDERS = [
    {provide: Http, useFactory: 
      (xhrBackend: XHRBackend, requestOptions: RequestOptions): Http =>
          new Http(xhrBackend, requestOptions), 
          deps: [XHRBackend, RequestOptions]},
    BrowserXhr,
    {provide: RequestOptions, useClass: BaseRequestOptions},
    {provide: ResponseOptions, useClass: BaseResponseOptions},
    XHRBackend,
    {provide: XSRFStrategy, useFactory: () => new CookieXSRFStrategy()},
];

Вы также можете создать инжектор самостоятельно, используя таких провайдеров, как

let resolvedProviders = ReflectiveInjector.resolve(HTTP_PROVIDERS);
let injector = ReflectiveInjector.fromResolvedProviders(resolvedProviders, /* this.injector (parent injector if any) */ );
var http = child.get(Http);

Смотрите также Inject Http вручную в угловых 2

Другие вопросы по тегам