手动创建(获取)服务实例Angular 6

时间:2018-08-12 19:11:22

标签: angular dependency-injection

我遇到了一个问题,我需要在不创建类的情况下手动创建(或更好地获取)服务的实例。

这是一个不寻常的用例。我有一个用于创建动态表单的模块。表单配置基本上是一个具有许多属性和方法的大型JS对象。在其中一种方法中,我需要从服务中检索一些数据。

对我来说,理想的解决方案(如果存在)是从Angular DI系统中手动获取所需的Service实例,并提供所有dep,然后调用其方法。这样我就可以在一个模块中提供此服务,并且可以在该模块中使用它,而无需创建Injectable类。

我觉得这听起来有点不清楚。但是我想做的事情如下:

const service: MyService = AngularDI.get(MyService);

以便它返回当前模块中提供的该服务的实例。

===编辑===

更多关于我实际需要的解释。

我有一个具有多个依赖项的服务。这些依赖项还具有多个非常复杂的依赖项,等等。

我不能简单地通过'new'关键字cuz创建此服务,然后必须手动初始化所​​有依赖关系和依赖关系。因此,我希望Angular DI框架为我创建此服务。就是这样。

感觉就像一个恶性循环-我无法摆脱DI循环,在DI循环中,所有事物都必须是Component或Injectable,并且不能手动创建。

好吧,对于Components,有一个componentFactoryResolver可以帮助动态创建它们。.Services真的没有这种东西吗?

0 个答案:

没有答案