在 AngularJs 中以编程方式解析服务



我正在尝试从特定模块以编程方式解析 angular js 中的服务,但我找不到正确的方法。

我知道使用 angular.injector(['NameOfModule']).get('NameOfService') 我可以检索服务。但是,使用 angular.injector 不会检索给定模块的注入器,而是创建一个新的注入器。这意味着当它检索服务时,因为它是一个新的注入器,它没有缓存服务,因此创建一个新的服务。这意味着我将拥有多个相同的服务,因此它将不再是单例,这显然会导致问题。

我本质上想做的是从特定模块检索注入器,以便我可以尝试从该注入器检索(缓存或未缓存)服务。有谁知道如何实现这一目标?

我的建议是将$injector服务注入到您要使用它的控制器\服务中。这将返回应用正在使用的注入器,而不是像 angular.injector 那样创建新的注入器。请参阅此SO帖子中的详细说明 无法从角度检索喷油器

最新更新