我在 Angular 应用程序的 app.module 中使用函数工厂来初始化一项服务。像这样的东西
export function analyticsServiceFactory() {
return ConfigService.env === "development" ? new AnalyticsDevService() : new AnalyticsService();
}
...
const providers = [
...
{ provide: AnalyticsService, useFactory: analyticsServiceFactory }
];
Run Code Online (Sandbox Code Playgroud)
到目前为止,这一切都运行良好。问题来了,因为现在我需要将状态(@ngrx)作为这些服务之一的依赖项注入。我该怎么做呢?
我知道我可以向工厂提供程序添加依赖项,但如何添加状态?这可能吗?
此外,我的商店和我的analyticsServiceFactory是在不同的模块中定义的,这使得它变得更加困难。
有任何想法吗?谢谢。
您可以在提供者定义的数组中要求依赖项"deps",然后在工厂函数中接受它们作为参数:
{
provide: FooService,
useFactory: (store: Store<AppState>, httpClient: HttpClient) => {
return new FooService(httpClient, store);
},
deps: [Store, HttpClient]
}
| 归档时间: |
|
| 查看次数: |
1791 次 |
| 最近记录: |