Как внедрить зависимости в дочерний класс Angular?

#angular #angular8

#angular #angular8

Вопрос:

Это первый раз, когда я расширил чужой класс в Angular 8, и я не могу разобраться, как внедрить что-то в конструктор дочернего класса.

Например, если у меня есть родительский и дочерний:

 export class TestParent
{

}

export class TestClass extends TestParent
{

    constructor(api: ApiService)
    {
        super();
    }

}
  

Внедрение не работает и выдает ошибки, потому что в родительский класс не внедрена служба. Итак, я попытался добавить его и к родительскому классу, но тогда у меня просто появилось больше проблем. Служба внедряет нормально, но зависимости, на которые опирается служба, затем не внедряются, как это обычно делается в конструкторе services.

Должен быть какой-то способ сделать это?

В принципе, я использую модуль ng-chat, и вам нужно создать класс адаптера, который расширяет основной адаптер. Внутри моего адаптера мне нужно выполнять вызовы api, используя мой ApiService, но, похоже, я не могу внедрить сервис в свой класс адаптера.

Комментарии:

1. Является ли тестовый класс сервисом, компонентом или классом плана?

2. Можно ли внедрять эти классы, если нам нужно создать объект, изменив их

Ответ №1:

Попробуйте внедрить зависимость в родительский класс из дочернего класса.

 export class TestParent {
   constructor(api: ApiService) {}
   
   makeAPiRequest() {
     this.api.makeRequest();
   }
}

export class TestClass extends TestParent {

    constructor(api: ApiService) {
        super(api);
    }

}
  

Комментарии:

1. в случае, если вы получаете ошибки при попытке внедрить зависимость в родительский класс, пожалуйста, опубликуйте ошибку