/ / Inject @ngrx store en tant que dépendance dans un fournisseur d’usine dans Angular - angular, ngrx

Inject @ngrx store en tant que dépendance dans un fournisseur d’usine dans Angular - angular, ngrx

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 № 1

Vous 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] }