J'ai un ensemble de composants angular2 qui devraient tous recevoir un service injecté. Ma première pensée a été qu'il serait préférable de créer une super classe et d'y injecter le service. N'importe lequel de mes composants étendrait alors cette superclasse mais cette approche ne fonctionne pas.
Exemple simplifié:
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
}
}
Je pourrais résoudre cela en injectant MyService
dans chaque composant et utiliser cet argument pour l' super()
appel, mais c'est définitivement une sorte d'absurde.
Comment organiser correctement mes composants pour qu'ils héritent d'un service de la super classe?