AngularJS依赖注入

Soh*_*are 6 javascript dependency-injection angularjs

我说两个模块:

  1. foo.a
  2. foo.b

和一个应用程序模块:

  angular.module("foo", ["foo.a","foo.b"])
Run Code Online (Sandbox Code Playgroud)

我在模块中有一项服务foo.b说:

  angular.module("foo.b", [])

  angular.module("foo.b").factory("helper",helperFn);
Run Code Online (Sandbox Code Playgroud)

我想在我的一个控制器中使用它foo.a.

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

 angular.module("foo.a", []);

 angular.module("foo.a")
        .controller("MyController",["helper",MyControllerFn]);
Run Code Online (Sandbox Code Playgroud)

这是有效的.

我的问题是

  1. 我怎么从模块获得"帮助"服务,foo.b即使它没有被声明为模块a的依赖项?
  2. 它会在稍后阶段破裂吗?
  3. 如果是正确的,这是一个好习惯吗?

Sta*_*ams 7

将您需要访问的工厂放在第三个模块中的两个模块中.让两个原始模块为第三个模块注入依赖关系.

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);
Run Code Online (Sandbox Code Playgroud)