6
私はCustomHttp
クラスを持っていると私は私のget
要求にヘッダを追加するためにそれを使用する:RC5でRC6でHttpクラスをオーバーライドする方法は?
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Rx';
import { RequestOptionsArgs, RequestOptions, ConnectionBackend, Http, Request, Response, Headers } from "@angular/http";
@Injectable()
export class CustomHttp extends Http {
headers: Headers = new Headers({ 'Something': 'Something' });
options1: RequestOptions = new RequestOptions({ headers: this.headers });
constructor(backend: ConnectionBackend,
defaultOptions: RequestOptions) {
super(backend, defaultOptions);
}
get(url: string, options?: RequestOptionsArgs) {
console.log('Custom get...');
return super.get(url, this.options1).catch(err => {
console.log(err);
if (err.status === 404) {
console.log('404 error');
return Observable.throw(err);
}
});
}
}
、私はこのような私のAppModule
プロバイダにこれを追加しました:
provide (Http, {
useFactory: (
backend: XHRBackend,
defaultOptions: RequestOptions) =>
new CustomHttp(backend, defaultOptions),
deps: [XHRBackend, RequestOptions]
})
しかし、RC6で、 provide
から@angular/core
が廃止されました。AppModule
プロバイダにCustomHttp
クラスを追加する際に問題が発生しています。誰かがこれを行う方法を考えていますか?
をうん、それはそれです!今度は、 '@ angular/core'から' provide'をインポートする代わりに、 'Provider'をインポートする必要があります。 RC6で変更されたもう一つのことは、 '@Angel/http'から' ConnectionBackend'をインポートしてモジュールプロバイダに追加する必要がなくなったことです。どうもありがとう! –
なぜあなたは 'Provider'をインポートする必要がありますか?私はそれが事実だとは思わない。 –
ええ、あなたは正しい、私の悪いです。それを削除し、それはまだ魅力のように動作します。私はこれを修正しようとしていた間にそれを早期にインポートしていたので、必要と思った。 –