Ionic 2 rc0: создание пользовательского http-сервиса

#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