Използвам функционална фабрика в app.module на приложението ми ъглово, за да инициализирам една услуга. Нещо като това
export function analyticsServiceFactory() {
return ConfigService.env === "development" ? new AnalyticsDevService() : new AnalyticsService();
}
...
const providers = [
...
{ provide: AnalyticsService, useFactory: analyticsServiceFactory }
];
Това работи добре досега. Проблемът идва, защото сега трябва да инжектирам държавата (@ngrx) като зависимост от една от тези услуги. Как да направя това?
Знам, че мога да добавям зависимости от фабричния доставчик, но как да добавя държавата? Това ли е възможно?
Също така моят магазин и моята analyticsServiceFactory са дефинирани в различни модули, което го прави още по-трудно.
Някакви идеи? Благодаря.
Отговори:
1 за отговор № 1Можете да изискате зависимости в "deps"
масив на определението за доставчик, то просто ги приемете като параметри във фабричната функция:
{
provide: FooService,
useFactory: (store: Store<AppState>, httpClient: HttpClient) => {
return new FooService(httpClient, store);
},
deps: [Store, HttpClient]
}