javascript - AngularJS 依赖注入(inject)

标签 javascript angularjs dependency-injection

我说了两个模块:

  1. foo.a
  2. 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]);

这是有效的。

我的问题是

  1. 我如何从模块 foo.b 获得“助手”服务,即使它没有声明为模块 a 的依赖项?
  2. 以后会坏吗?
  3. 如果正确,这是一个好的做法吗?

最佳答案

将您需要在两个模块中访问的工厂放在第三个模块中。让您的两个原始模块向第三个模块注入(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/

相关文章:

php - 无需 jQuery 或其他框架即可动态刷新带有表格的 div

javascript - iPhone - JavaScript 事件...用于 Three.js

javascript - Angular 自定义文本搜索过滤器顺序

javascript - 触发属性作为 angularjs 指令的函数

java - Spring Beans 中的构造函数参数太多

javascript - 使用编码 gzip 的 ajax 发送请求不起作用

javascript - 在 Javascript 字符串中查找数字并将其反转

javascript - 在angular js中使用ng-class中的函数

java - 依赖注入(inject)、延迟注入(inject)实践

c# - Xamarin.Forms 的属性注入(inject)(setter 注入(inject)) Prism