我正在尝试以编程方式在特定模块的角度js中解析服务,但我找不到正确的方法。
我知道使用angular.injector(['NameOfModule'])。get('NameOfService')我可以检索服务。但是,使用angular.injector不会检索给定模块的注入器,而是创建新的注入器。这意味着当它检索服务时,因为它是一个新的注入器,它没有缓存服务,因此创建一个新服务。这意味着我将拥有多个相同的服务,因此它将不再是单例,这显然会导致问题。
我本来想要做的是从特定模块中检索注入器,以便我可以尝试从该注入器检索(缓存或未缓存)服务。有谁知道如何实现这个目标?
答案 0 :(得分:1)
我建议将$ injector服务注入您想要使用它的controller \ service。这将返回应用程序正在使用的注入器,而不是像angular.injector那样创建新的注入器。请参阅此SO帖子Can't retrieve the injector from angular
中的详细说明