BaseReqestOptions
は@Injectable
を使用します。この場合、サブクラスのコンストラクタの代わりにBaseRequestOptions
コンストラクタを呼び出す必要があります。だから、あなたはどちらかでした:
は工場
providers: [{
provide: RequestOptions,
deps: [ Config ],
useFactory: (config: Config) => {
return new DefaultRequestOptions(config);
}
}]
を使用これは角度がそれを注入しようとせずに、サービスを自分で作成することができます。それとも、
代わりRequestOptions
を拡張
@Injectable()
class DefaultRequestOptions extends RequestOptions {
constructor(public config: Config) {
super({method: RequestMethod.Get, headers: new Headers()})
this.headers.append('data', this.config.data);
}
}
RequestOptions
は@Injectable
が飾られていませんでした。 the source code for BaseRequestOptionsを見ると、上記のことと同じことが表示されます(super
コール)。
は、私はまた、あなたがAuthService
がHttp
を注入された場合はこれに注意する必要がある
トークンJWTを置くためにここに私のカスタムのAuthServiceを注入する必要があります。循環依存エラーが発生する可能性があります(
Http
は
RequestOptions
、
RequestOptions
は
Http
が必要です)。これを処理する1つの方法は、サービスに
Http
の代わりに
Injector
を挿入することです。次に
get
Http
Injector
からちょうどです。