6
mam CustomHttp
klasę i używam go dodać nagłówki do moich get
wniosków:Jak zastąpić klasę Http w RC6?
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);
}
});
}
}
W RC5, dodałem go do moich AppModule
dostawców tak:
provide (Http, {
useFactory: (
backend: XHRBackend,
defaultOptions: RequestOptions) =>
new CustomHttp(backend, defaultOptions),
deps: [XHRBackend, RequestOptions]
})
Ale, RC6, provide
z @angular/core
jest przestarzałe i mam problem z dodaniem mojej klasy CustomHttp
do dostawców AppModule
. Czy ktoś ma pomysł, jak to zrobić?
Tak, to jest to! Teraz, zamiast importować 'provide' z' @ angle/core', musisz zaimportować 'Provider'. Kolejną rzeczą, która zmieniła się w RC6, jest to, że nie musisz importować 'ConnectionBackend' z' @ angle/http' i dodawać go do dostawców modułów. Wielkie dzięki! –
Dlaczego chcesz importować 'Provider'? Nie sądzę, żeby tak było. –
Tak, masz rację, moje złe. Usunięto go i nadal działa jak urok. Miałem go zaimportowane wcześniej, gdy próbowałem to naprawić, więc pomyślałem, że to konieczne. –