Ho una serie di componenti angular2 che dovrebbero ricevere un servizio di iniezione. Il mio primo pensiero è stato che sarebbe stato meglio creare una super classe e iniettare lì il servizio. Qualunque dei miei componenti estenderebbe quindi quella superclasse, ma questo approccio non funziona.
Esempio semplificato:
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
}
}
Potrei risolverlo inserendo MyService
in ogni singolo componente e usando quell'argomento per la super()
chiamata, ma è decisamente una sorta di assurdo.
Come organizzare correttamente i miei componenti in modo che ereditino un servizio dalla super classe?