#javascript #angularjs #angular #ionic-framework #ionic2
#javascript #angularjs #угловой #ionic-framework #ionic2
Вопрос:
Я перехожу из проекта ES6 (beta11) в новый проект с rc0, и у меня возникли некоторые проблемы с переписыванием пользовательского http-сервиса, который у меня был.
В моей папке / providers у меня есть customhttp.ts:
import {Injectable } from "@angular/core";
import {Http, Headers} from "@angular/http";
import {RequestOptions, XHRBackend} from '@angular/http';
@Injectable()
export class CustomHttp extends Http {
constructor(xhrBackend: XHRBackend, requestOptions: RequestOptions) {
super(xhrBackend, requestOptions);
}
//some other methods, which override the defaults from Http
}
в моем app.mmdule.ts я импортировал это и добавил в качестве поставщика
import {CustomHttp} from '../providers/customhttp';
...
@NgModule({
...
providers: [CustomHttp]
})
на странице я пытаюсь его использовать
import {CustomHttp } from '../../providers/customhttp';
export class CheckAccess {
constructor(private customHttp: CustomHttp)
}
.ts компилируются, но браузер выводит
ошибка_handler.js:45EXCEPTION: неперехваченный (в обещании): Ошибка: Ошибка в ./checkAccess class CheckAccess_Host — встроенный шаблон: 0:0 вызвано: нет поставщика для возврата соединения!
Я не могу понять, что я делаю не так. Кто-нибудь может помочь?
Комментарии:
1. проблема связана с классом ConnectionBackend . Добавьте этот класс к поставщикам, и все будет хорошо!
Ответ №1:
Импортируйте XHRBackend и RequestOptions в свой модуль приложения и проверьте, указав ниже в качестве поставщиков :
providers :[
{
provide: CustomHttp,
useFactory: (backend: XHRBackend, defaultOptions: RequestOptions) => {
return new CustomHttp(backend, defaultOptions);
},
deps: [ XHRBackend, RequestOptions]
}
]
Комментарии:
1. Привет! Я пробовал это, но проблемы сохраняются: -/ по-прежнему не удается найти поставщика для ConnectionBackend