Mam zestaw komponentów angular2, które powinny zostać wstrzyknięte. Moja pierwsza myśl była taka, że najlepiej byłoby stworzyć superklasę i wstrzyknąć tam usługę. Każdy z moich komponentów rozszerzyłby wtedy tę superklasę, ale to podejście nie działa.
Uproszczony przykład:
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
}
}
Mógłbym to rozwiązać, wstrzykując MyService
każdy komponent i używając tego argumentu do super()
wywołania, ale to z pewnością jakiś absurd.
Jak poprawnie zorganizować moje komponenty, aby dziedziczyły usługę z superklasy?