Ionic 2 rc0:创建自定义http服务

时间:2016-09-29 16:48:20

标签: javascript angularjs angular 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已编译,但浏览器输出

error_handler.js:45EXCEPTION:未捕获(在承诺中):错误:./CheckAccess类错误CheckAccess_Host - 内联模板:0:0导致:没有ConnectionBackend的提供者!

我无法找出我做错了什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

在您的应用模块中导入XHRBackend和RequestOptions,并通过将以下设置为提供商进行检查:

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