J'ai DrawingDataService
qui contient un tableau de mes données et différents outils pour dessiner ces données. Je veux utiliser DrawingDataService
comme singleton dans tous mes outils.Impossible d'obtenir l'injecteur dans l'angle 2
Je mis DrawingDataService
dans la liste des fournisseurs AppModule (pour faire comme instance singleton):
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [
DrawingDataService
],
bootstrap: [AppComponent]
})
export class AppModule { }
Puis-je ajouter injecteur dans mon outil:
export class LineTool extends BaseTool {
constructor(private injector: Injector) {
super();
let drawingDataService2 = this.injector.get(DrawingDataService);
Et il me dit que this.injector
est nulle . Est-ce une bonne pratique de faire un service singleton pour stocker des données?
L'exemple fait défaut. Injecteur ne peut pas être nul sans raison. Il devrait y avoir des erreurs. La classe n'a pas de décorateur @Injectable(), n'est-ce pas? Si c'est un fournisseur, où est-il ajouté au module? Oui, c'est une bonne pratique. Et non, il n'y a aucune raison de le faire avec injector.get. Juste injecter le service. – estus
Je reçois la même erreur même si j'ai '@Injectable()' sur ma classe. – papaiatis