2016-09-29 9 views
1

Я перехожу от проекта ES6 (beta11) к новому проекту с rc0, и у меня возникли проблемы с переписыванием пользовательского сервиса http, который у меня был.Ionic 2 rc0: создать пользовательский http-сервис

В моих поставщиках/папки у меня есть 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] 
}) 

на странице I» м пытается использовать его

import {CustomHttp } from '../../providers/customhttp'; 
export class CheckAccess { 
    constructor(private customHttp: CustomHttp) 
} 

ts-компилируются, но браузер выводит

error_handler.js: 45EXCEPTION: Неподготовлено (в обещании): Ошибка: ошибка ./CheckAccess класс CheckAccess_Host - встроенный шаблон: 0: 0 вызван: Нет провайдера для ConnectionBackend!

Я не могу понять, что я делаю неправильно. Может ли кто-нибудь помочь?

+0

проблема с классом ** ConnectionBackend **. Добавьте этот класс к провайдерам, и вам должно быть хорошо! – Shmarkus

ответ

1

Импорт XHRBackend и RequestOptions в вашем модуле приложения и проверить, установив ниже в качестве поставщиков:

providers :[ 
{ 
    provide: CustomHttp, 
    useFactory: (backend: XHRBackend, defaultOptions: RequestOptions) => { 
    return new CustomHttp(backend, defaultOptions); 
    }, 
    deps: [ XHRBackend, RequestOptions] 
    } 
] 
+0

Привет! Я пробовал это, но проблемы сохраняются: -/до сих пор не удается найти поставщика для ConnectionBackend –

+0

У меня была такая же проблема, и это разрешило это! – Gabriel