是否可以为模块中的服务提供默认设置(Angular 2+)

时间:2018-02-19 01:28:47

标签: angular

在Angular 2+中,可以在将服务注入组件之前对其进行配置。例如,是否可以为提供者阵列的模块中的服务提供默认设置?

我正在编写该服务,但我希望避免使用configure()方法,并在设计时提供所述详细信息。

我已经做了一些搜索,但我可能没有正确的搜索术语,因为我没有找到答案。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以定义服务配置类,然后将其工厂添加到模块中的提供程序:

providers:
..., {
  provide: ServiceConfig,
  useFactory: serviceConfigFactory,
  deps: [Foo, Bar]
}, ...
...
export function serviceConfigFactory(foo: Foo, bar: Bar): ServiceConfig {
  ...  // build config here
}

其中Foo和Bar - 您的工厂函数可注入参数类。

然后将服务配置注入您的服务:

@Injectable()
export class YourService {
  constructor (private serviceConfig: ServiceConfig)
  ...
}