Tengo un conjunto de componentes de angular2 que deberían recibir algún servicio. Mi primer pensamiento fue que sería mejor crear una superclase e inyectar el servicio allí. Cualquiera de mis componentes ampliaría esa superclase, pero este enfoque no funciona.
Ejemplo simplificado:
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
}
}
Podría resolver esto inyectando MyService
dentro de todos y cada uno de los componentes y usar ese argumento para la super()
llamada, pero eso definitivamente es una especie de absurdo.
¿Cómo organizar correctamente mis componentes para que hereden un servicio de la superclase?