用ませプロバイダは、私は、HTTPのインターセプターのようにそれを使用することができるように、私自身のHTTPサービスを作成したいんが、私はで始まる非常に長いエラーを取得:EXCEPTION: Uncaught (in promise): Error: No provider for XHRBackend!
角度2カスタムHTTPサービスは、エラーがスローされます。XHRBackend
にhttp .service.ts
import { Injectable } from '@angular/core';
import { Http, XHRBackend, RequestOptions, RequestOptionsArgs, Request, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class HttpService extends Http {
constructor(backend: XHRBackend, options: RequestOptions) {
console.log('HttpService constructor');
super(backend, options);
}
request(url: string|Request, options?: RequestOptionsArgs): Observable<Response> {
console.log('HttpService request');
return super.request(url, options);
}
}
export const HTTP_SERVICE = {
provide: HttpService,
useFactory: (backend: XHRBackend, options: RequestOptions) => {
return new HttpService(backend, options);
},
deps: [XHRBackend, RequestOptions]
};
そして私はapp.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { AuthService } from './auth/auth.service';
import { HTTP_SERVICE } from './shared/http/http.service';
@NgModule({
imports: [
BrowserModule,
AppRoutingModule
],
declarations: [
AppComponent
],
providers: [
AuthService,
HTTP_SERVICE
],
bootstrap: [AppComponent]
})
export class AppModule { }
でそれを追加します。しかし、私はコンポーネント内のコンストラクタに注入するとき、それは動作しません。私は言及されたエラーを得る。
私も、私が行うことができることを読ん:このブログから
{ provide: Http, useClass: HttpService}
:http://www.adonespitogo.com/articles/angular-2-extending-http-provider/
しかし、これも動作しません。ここではエラーは発生しませんが、何も違いはありません。私はコードから期待どおりにコンソールに出力を得ません。
プロバイダコードにHttpService
をそのまま追加してみましたが、それでもエラーが表示されました。
'HttpModule'を' imports'に追加するだけで、すでに定義されているプロバイダを取得できます。そうすれば、あなたは 'HTTP_SERVICE'を必要とせず、ブログからシンプルなプロバイダを使うこともできます。 – jonrsharpe
[Httpから継承している[ConnectionBackendのプロバイダがありません]の複製があります。(http://stackoverflow.com/questions/40507670/no-provider-for-connectionbackend-while-inheriting-from-http) – jonrsharpe
私は同じ問題がありますが解決策はありませんでしたか? –