2017-05-05 13 views
0

ReflectiveInjectorを使用してHttpインスタンスをインスタンス化するにはどうすればよいですか?ReflectiveInjectorを使用してHttpインスタンスをインスタンス化するにはどうすればよいですか?

HttpにはConnectionBackendとRequestOptionsをとるコンストラクタがあります。しかしConnectionBackendは抽象クラスなので、インジェクタはどのように解決するべきかを知っていますか? RequestOptionsを解決するためのヒントも感謝しています。

http.d.tsでは、Httpは@Componentも@Injectableも装飾されていません。これは、タイプが注入可能であるためにはAngularのドキュメントに基づいています。 Httpは確かに注入可能ですが、そのようにするためのインフラストラクチャーを持っていないようです。

+0

「ドキュメントと現実の間には少しのギャップがあるようです。」近代的なフロントエンド開発の素晴らしい世界へようこそ。 :) – sed

+0

http://stackoverflow.com/questions/39243525/inject-http-manually-in-angular-2、http://stackoverflow.com/questions/39491647/angular2-resolveandcreate-http-missing-http-プロバイダ-in-rc7/39491672#39491672 –

+0

[Angular2 RC6 HttpModule手動注入]の可能な複製(0120-328-6272)。 – jonrsharpe

答えて

0

はい私の質問は他の人がリンクしているものと同じですが、その質問の選択された回答は実際に質問に答えなかった。私はそれ以外のところで答えを見つけましたが、ここでそれをコピーして回答としてマークし、同じ質問をしている人々が少なくとも答えとしてマークされたものを見つけるようにします。

import { ReflectiveInjector } from '@angular/core'; 
import { 
    Http, BrowserXhr, RequestOptions, BaseRequestOptions, ResponseOptions, BaseResponseOptions, ConnectionBackend, 
    XHRBackend, XSRFStrategy, CookieXSRFStrategy 
} from '@angular/http'; 


export class HttpFactory { 
    public static Init(): void { 
    HttpFactory._injector = ReflectiveInjector.resolveAndCreate([ 
     Http, 
     BrowserXhr, 
     { provide: RequestOptions, useClass: BaseRequestOptions }, 
     { provide: ResponseOptions, useClass: BaseResponseOptions }, 
     { provide: ConnectionBackend, useClass: XHRBackend }, 
     { provide: XSRFStrategy, useFactory:() => new CookieXSRFStrategy() } 
    ]); 
    } 

    public static CreateHttp(): Http { 
    return HttpFactory._injector.get(Http); 
    } 

    private static _injector: ReflectiveInjector; 
} 
関連する問題