У меня есть компоненты B
, C
, D
которые наследуются от класса A
Я хочу использовать сервис в классе A
, но я не знаю, как внедрить его, не вводя его от своих детей.
То, что я пробовал, - это обычное внедрение: constructor(pageName: string = null, translate: TranslateService) {
Но когда я делаю super()
для создания класса A
, выдается ошибка, потому что я не предоставил второй параметр.
Есть ли способ внедрить в родительский класс, используя Angular 2?
Версия Angular, которую я вынужден использовать: 2.2.1
РЕДАКТИРОВАТЬ:
Несколько примеров: у меня много страниц, на каждой из которых может отображаться загрузчик. Вместо того, чтобы вводить загрузчик каждый раз и управлять загрузчиком с каждой страницы, я хочу сделать:
export class BaseComponent {
constructor(private loader: LoadingService) {}
showLoading() {
this.loader.show();
}
}
А потом наследовать от самого компонента:
@Component({
selector: "page-login",
providers: [UsersService],
templateUrl: "login.html"
})
export class LoginPage extends BaseComponent {
constructor(private usersService: UsersService) {
super();
}
}
Теперь у LoginPage
есть метод showLoading
от него parent.