Javascript AngularJS依赖注入

Javascript AngularJS依赖注入,javascript,angularjs,dependency-injection,Javascript,Angularjs,Dependency Injection,我有两个模块: foo.a foo.b 以及一个应用模块: angular.module("foo", ["foo.a","foo.b"]) 我在模块foo.b中有一项服务,比如: angular.module("foo.b", []) angular.module("foo.b").factory("helper",helperFn); 我想在foo.a中的一个控制器中使用它 我所做的是简单的依赖注入: angular.module("foo.a", []); angu

我有两个模块:

  • foo.a
  • foo.b
  • 以及一个应用模块:

      angular.module("foo", ["foo.a","foo.b"])
    
    我在模块
    foo.b
    中有一项服务,比如:

      angular.module("foo.b", [])
    
      angular.module("foo.b").factory("helper",helperFn);
    
    我想在
    foo.a
    中的一个控制器中使用它

    我所做的是简单的依赖注入:

     angular.module("foo.a", []);
    
     angular.module("foo.a")
            .controller("MyController",["helper",MyControllerFn]);
    
    这是有效的

    我的问题是

  • 我如何从模块
    foo.b
    获取“helper”服务,即使它没有声明为模块a的依赖项
  • 它会在稍后阶段中断吗
  • 如果这是正确的,这是一个好的做法吗

  • 将两个模块中需要访问的工厂放在第三个模块中。让您的两个原始模块向第三个模块注入依赖项

    angular.module("foo", ["foo.a", "foo.b"]);
    
    angular.module("foo.a", ["foo.c"])
      .controller("MyController", ["helper", MyControllerFn]);
    
    angular.module("foo.b", ["foo.c"]);
    
    angular.module("foo.c")
      .factory("helper", helperFn);
    

    我担心您将收到一个错误
    错误:[$injector:unpr]未知提供程序:helper提供程序问题是,我可以使用其他模块的工厂,而无需将该模块作为依赖项添加