Задать вопрос
Ответы пользователя по тегу ООП
  • Angular2 - присваивание в конструкторе в TypeScript как это работает?

    Зачем вам инжектить именно в метод? В этом есть какой-то смысл?
    Я думаю то что вы хотите можно сделать вот так take.ms/Jt2pn. Нужно использовать this.inject, а появляется этот инжектор в классе из-за декоратора @Injectable() (@Directive и @Pipe наследуют от @Injectable). Когда вы инжектите в конструктор неявно происходит вот это, очень приблизительно:
    @Injectable()
    export class ApiService {
        private _http: Http
        constructor() {
            this.injector = ReflectiveInjector.resolveAndCreate([Http]); // автоматически разрешает зависимости и заменяет new Http()
            this._http = this.injector.get(Http) // получаем синглтон в пределах инжектора https://angular.io/docs/ts/latest/guide/hierarchical-dependency-injection.html
        }
    }

    А как ангуляр понимает, что это не просто параметр, а di? В инжекторе есть map в которой регистрируются зависимости, ключами являются типы внедряемых классов, в данном случае Http.

    В официально документации все это написано, понятно даже с гугл переводчиком.
    Ответ написан