typescript - Angular 2 - 手动实例化 (Http) 服务

标签 typescript angular angular2-http

是否可以手动实例化 Http Service,而不将其作为构造函数参数?

export class SimpleGridServer {
    private http: Http;
    constructor(public options: SimpleServerData) {
        http = new Http(.../* Argument here */);
    }
}

实例化此类。

var grid = new SimpleGridServer({/* options */});

我想实例化此类,但不依赖于导入 SimpleGridServer组件 的 Http 服务。 如果这是可能的,这种情况的缺点是什么?

最佳答案

If this is possible, what is the drawback for this scenario?

您需要处于 Angular DI 工作流程中才能使用 Angular 的东西。

您可以直接获取 Angular 注入(inject)器的句柄:

import {ReflectiveInjector} from '@angular/core';
import {HTTP_PROVIDERS, Http, Headers} from "@angular/http";
const injector = ReflectiveInjector.resolveAndCreate([HTTP_PROVIDERS]);
const http = injector.get(Http);

关于typescript - Angular 2 - 手动实例化 (Http) 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38579941/

相关文章:

angular - 你如何在 Angular 2 中发布一个 FormData 对象?

javascript - RxJs:如何在接收到流时更改订阅的 "listen"?

javascript - 如何使用 Typescript 通过类型而不是接口(interface)来建模对象?

typescript - 条件类型中的 boolean[] 扩展为 true[] |错误的[]

css - 为什么 Bootstrap 表不使用 Angular 7 中的样式?

html - 带文本字段输入的 Angular 2 对话框弹出

javascript - 有没有办法用 Typescript 使可选的 React props 类型更清晰?

javascript - 如何在 Angular 2 中添加多个 OR 条件

angular - 如何在 Angular6 中为 ngx-datatable 列编写自定义排序方法?

angular - 路由到另一个组件后,服务返回时通知用户