http - 如何在不使用构造函数 DI 的情况下创建 Http 实例?

标签 http angular dependency-injection

出于某种原因,我不想使用构造函数(私有(private) http: Http)DI。

看了https://angular.io/docs/ts/latest/api/http/index/Http-class.html

尝试过

const injector = ReflectiveInjector.resolveAndCreate([
  BaseRequestOptions,
  XHRConnection,
  {
    provide: Http,
    useFactory: (backend, defaultOptions) => new Http(backend, defaultOptions),
    deps: [XHRConnection, BaseRequestOptions]
  }
]);

this.http = injector.get(Http);

错误说

ORIGINAL EXCEPTION: Cannot resolve all parameters for 'XHRConnection'(?, ?, ?). Make sure that all the parameters are decorated with Inject or have valid type annotations and that 'XHRConnection' is decorated with Injectable.

最佳答案

您需要提供HTTP_PROVIDERS:

const injector = ReflectiveInjector.resolveAndCreate([
  HTTP_PROVIDERS,
  XHRConnection,
  {
    provide: Http,
    useFactory: (backend, defaultOptions) => new Http(backend, defaultOptions),
    deps: [XHRConnection, BaseRequestOptions]
  }
]);

关于http - 如何在不使用构造函数 DI 的情况下创建 Http 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39209217/

相关文章:

c# - 解决自动和手动依赖关系

c# - 用于单元测试目的的重载构造函数

ruby - 如何捕获所有 HTTP 流量(本地代理)

javascript - 如果单击超链接,使浏览器提交额外的 HTTP header

javascript - Angular 2获取输入验证状态

c# - 创建两个实现相同接口(interface)的单例服务

http - 一般不成功请求(不是错误)的适当 HTTP 状态代码响应是什么?

java - HttpServletRequest 的属性字段如何映射到原始 HTTP 请求?

javascript - Angular 6 - 比较两个可观察长度

html - 在 Ionic 3 中动态更改 CSS 值