我说了两个模块:
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
中的一个 Controller 中使用它。
我所做的是简单的依赖注入(inject):
angular.module("foo.a", []);
angular.module("foo.a")
.controller("MyController",["helper",MyControllerFn]);
这是有效的。
我的问题是
- 我如何从模块
foo.b
获得“助手”服务,即使它没有声明为模块 a 的依赖项? - 以后会坏吗?
- 如果正确,这是一个好的做法吗?
最佳答案
将您需要在两个模块中访问的工厂放在第三个模块中。让您的两个原始模块向第三个模块注入(inject)依赖项。
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);
关于javascript - AngularJS 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32195540/