У меня есть набор компонентов 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()
вызова, но это определенно какой-то абсурд.
Как правильно организовать мои компоненты, чтобы они унаследовали сервис от суперкласса?