Я пытаюсь использовать альтернативный класс для Http в угловых 2.Альтернативного класса для Http с угловым 2
Я хочу сделать так, чтобы иметь параметры настройки класса CustomHttp по умолчанию в конструкторе
import {Injectable} from 'angular2/core';
import {Http, RequestOptions, ConnectionBackend} from 'angular2/http';
@Injectable()
export class CustomHttp extends Http {
constructor(_backend: ConnectionBackend, _defaultOptions: RequestOptions) {
super(_backend, _defaultOptions);
let jwtHeader = localStorage.getItem('jwt');
if (jwtHeader != null) {
this._defaultOptions.headers.append('Authorization', jwtHeader);
}
console.log("Pouet CustomHttp");
}
}
Я пробовал различные варианты при загрузке, так как я хочу, чтобы эта перегрузка была глобальной для моего приложения.
Я пробовал:
bootstrap(AppComponent,
[HTTP_PROVIDERS,
ROUTER_PROVIDERS,
provide(Http, {useClass: CustomHttp,deps: [XHRBackend, BaseRequestOptions]})
]);
она поднимает:
browser_adapter.ts:73 EXCEPTION: No provider for ConnectionBackend! (TAPComponent -> SensService -> Http -> ConnectionBackend)
Я также попытался:
bootstrap(AppComponent,
[HTTP_PROVIDERS,
ROUTER_PROVIDERS,
provide(Http, {useFactory:
function(backend, defaultOptions) {
return new CustomHttp(backend, defaultOptions);
},
deps: [XHRBackend, BaseRequestOptions]})
]);
она поднимает:
browser_adapter.ts:73 EXCEPTION: No provider for BaseRequestOptions! (TAPComponent -> SensService -> Http -> BaseRequestOptions)
Что мне делать?
Я использую бета 9.
Большое спасибо ... Я так привык к java CDI, что не думал, что он не будет выбирать реализацию самостоятельно ... –
Добро пожаловать! Фактически, «HTTP_PROVIDERS» предоставляет «RequestOptions» не 'BaseRequestOptions'. Да, я хорошо понимаю ;-) –
все еще поддерживается для выхода angular2? –