2016-11-02 1 views
1

Не уверен, что является лучшим вариантом, но здесь он идет.Angular 2 - Поставщик инъекций в классе (машинописный)

У меня есть следующий класс

export class Order { 
    number?: any; 
    api?: ApiRequest; 
    constructor(number, api: ApiRequest) { 
     this.number = number; 
     this.api = api; 
    } 
} 

Когда я создаю заказ я использую следующий

let order new Order(123, this.request); 

ApiRequest является инъекционный глобальным поставщиком.

Есть ли способ, которым я могу автоматически вводить поставщик api в класс, когда я создаю новый объект?

ответ

1

Нет. Инъекция работает только для экземпляров, созданных DI, а не при создании их с помощью new Xxx().

+0

Так что я использую единственный вариант, который у меня есть? – keepwalking

+0

Точно, если вы создаете экземпляр с 'new Xxx()', у вас есть все, чтобы пройти в себе. Вы можете передать «Инжектор» и получить конкретные зависимости с помощью 'Order' like' constructor (инжектор: Инжектор) {this.api = injector.get (ApiRequest); } '. Я не знаю, является ли это улучшением вашей ситуации. –

+1

Возможно, это если у меня несколько зависимостей. Благодарю. – keepwalking

Смежные вопросы