У мене є набір компонентів angular2, які всі повинні вводити якусь службу. Моя перша думка полягала в тому, що найкраще створити супер клас і ввести там службу. Тоді будь-який з моїх компонентів розширить цей суперклас, але цей підхід не працює.
Спрощений приклад:
export class AbstractComponent {
constructor(private myservice: MyService) {
// Inject the service I need for all components
}
}
export MyComponent extends AbstractComponent {
constructor(private anotherService: AnotherService) {
super(); // This gives an error as super constructor needs an argument
}
}
Я міг би вирішити це, вводячи MyService
всередину кожного компонента і використовуючи цей аргумент для super()
дзвінка, але це, безумовно, якийсь абсурд.
Як правильно організувати мої компоненти, щоб вони успадкували послугу від супер класу?