@Coder321

Как наследовать класс с инжектами?

Есть базовый класс в который инжектится сервис. При наследовании этого класа и вызове метода super в дочернем, матерится на то что конструктор базового класса принимает один агрумент, то есть, инжект сервиса. НА данный момент зделал так:
constructor(
    protected service: MyService
  ) {
    super(service);
  }

Все работает но выгладит коряво, да и не хочется делать инжекты во всех дочерних классах. Как быть в такой ситуации?

Нашел еще один вариант
const injector = ReflectiveInjector.resolveAndCreate([MyService]);
    this.service= injector.get(MyService);

Но такой вариант постоянно создает новый екземпляр MyService что тоже не очень хорошо?
  • Вопрос задан
  • 238 просмотров
Пригласить эксперта
Ответы на вопрос 1
@furrya_black
Не наследуйте сервис, @injectable класс, передавайте его как зависимость.

Погуглите создание сервисов через фабрики.

В providers вместо класса сервиса передавайте объект с пропертями useFactory, provide и deps, в deps injectable классы, они же сервисы, которые юзает сервис указанный в provide

Щас не дома, если не получится, напишите, буду вечером у компа, накидаю немного кода)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы