2016-08-23 7 views
4

を使用しています。私はいくつかのコメント付きテキスト{提供:HTTP、useClass:Http}を持っています。私はHttpを拡張する私のクラスをここに提供したいが、依然として同じ依存関係を持っている。ここで取り組む最初のステップは、明示的にHttpを使用することです。角度2 DIは、私がHTTPを使用するサービスを持っているカスタムHTTP

このテキストのコメントを解除して(httpのインポートを追加すると)、すべてが破損します。エラー"No provider for ConnectionBackend"が表示されます。 HTTP_PROVIDERSがプロバイダとしての動作を停止したようです。

  • このように明示的にHttpを使用するにはどうすればよいですか?
  • 独自のCustomHttpを使用してHTTP_PROVIDERSでプロバイダを使用するにはどうすればよいですか?

答えて

2

独自のCustomHttpを使用して、あなたはHTTP_PROVIDERSを使用する必要はありません、あなたがしている場合は、以下の(あなたのapp.module.tsで使用している場合はRC5たりmain.tsでを行う必要がありますRC4を使用して):

providers: [ 
    ConnectionBackend, 
    provide(
     Http, { 
      useFactory: (
       backend: XHRBackend, 
       defaultOptions: RequestOptions) => 
       new CustomHttp(backend, defaultOptions), 
      deps: [XHRBackend, RequestOptions] 
     }), 
] 

私は同じ問題を抱えていましたが、これは私のために修正されました。

編集:

あなたはHttpModuleをインポートしますので、あなたがRC5を使用している場合はHTTP_PROVIDERSをインポートする必要はありませんが、あなたはRC4でHTTP_PROVIDERSが必要な場合、私は正確に覚えていません。おそらくそれが必要になります。あなたが行うことができますXHRBackendとRequestOptionsの実装を変更したくない場合は

+0

Angular 2.1.1では、 'HTTP_PROVIDERS'は必要ありません。カスタムhttpクラスのコンストラクタparamsとして 'XHRBackend'を使用してください。私はここでより包括的なガイドを書いています。http://adonespitogo.com/articles/angular-2-extending-http-provider/ –

2

それが好きsimplier:

providers: [ 
    {provide: Http, useClass: MyCustomHttp} 
] 
+0

私の場合、カスタムのHttp実装を使用する別のカスタムプロバイダがあります。私はこれをするまで_no_ _end_の問題を抱えていました。大変ありがとう@Serginho –

4
アンギュラ2.1.1から

とオプションを提供するための構文上では、新しい紹介angular2チームの後に変更されましたモジュールのコンセプト。あなたがしたい場合https://angular.io/docs/ts/latest/api/http/index/XHRBackend-class.html

:あなたはどのようにあなたのapp.module.ts

export function httpFactory(backend: XHRBackend, defaultOptions: RequestOptions) { 
    return new CustomHttp(backend, defaultOptions); 
} 

... 

providers: [ 
       {provide: Http, 
         useFactory: httpFactory, 
         deps: [XHRBackend, RequestOptions] 
       } 
       ] 

でHTTPのための独自のカスタムプロバイダを追加します。また、ここでangular2のマニュアルを確認することができ、正しい構文があります下に独自のCustomHttpクラスを実装する方法を紹介しています.Thierry Templierの記事を読むことをお勧めします。

Implementing CustomHttp for angular2これはリクエストを傍受してカスタム処理エラーを追加する方法を説明する非常に参考になる記事です。

関連する問題