Angular 2 - создание экземпляра (Http) службы вручную

Можно ли создать экземпляр службы Http вручную, не используя ее в качестве аргумента конструктора?

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

Чтобы создать экземпляр этого класса.

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

Я хочу создать экземпляр этого класса без зависимости от службы Http для моего component, который импортирует SimpleGridServer. Если это возможно, в чем состоит недостаток этого сценария?


person jmvtrinidad    schedule 26.07.2016    source источник


Ответы (1)


Если это возможно, в чем состоит недостаток этого сценария?

Вы должны быть в рабочем процессе Angular DI, чтобы использовать Angular вещи.

Вы можете получить доступ к инжектору angular напрямую:

import {ReflectiveInjector} from '@angular/core';
import {HTTP_PROVIDERS, Http, Headers} from "@angular/http";
const injector = ReflectiveInjector.resolveAndCreate([HTTP_PROVIDERS]);
const http = injector.get(Http);
person basarat    schedule 26.07.2016
comment
Вы можете использовать angular 2 DI без конструктора, проверьте это stackoverflow.com/a/37812906/1401751 - person Ofer Herman; 26.07.2016