#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. в случае, если вы получаете ошибки при попытке внедрить зависимость в родительский класс, пожалуйста, опубликуйте ошибку