J'utilise une fabrique de fonctions dans le module d'application de mon application Angular pour initialiser un service.
export function analyticsServiceFactory() {
return ConfigService.env === "development" ? new AnalyticsDevService() : new AnalyticsService();
}
...
const providers = [
...
{ provide: AnalyticsService, useFactory: analyticsServiceFactory }
];
Cela fonctionnait bien jusqu'à maintenant. Le problème vient du fait que je dois maintenant injecter l'état (@ngrx) en tant que dépendance à l'un de ces services. Comment je ferais ça?
Je sais que je peux ajouter des dépendances au fournisseur de l'usine, mais comment puis-je ajouter l'état? Est-ce que c'est possible?
De plus, mon magasin et mon analyticsServiceFactory sont définis dans différents modules, ce qui rend la tâche encore plus difficile.
Des idées? Merci.
Réponses:
1 pour la réponse № 1Vous pouvez avoir besoin de dépendances dans le "deps"
tableau de la définition du fournisseur, puis acceptez-les simplement en tant que paramètres dans la fonction de fabrique:
{
provide: FooService,
useFactory: (store: Store<AppState>, httpClient: HttpClient) => {
return new FooService(httpClient, store);
},
deps: [Store, HttpClient]
}