AngularJS:一个服务几个模块

时间:2016-04-19 17:05:25

标签: angularjs service module

这是关于AngularJS模块和服务以及如何定义它们的问题。

  1. 应用程序可以由多个模块组成
  2. 服务允许将常用代码分解出来并由多个模块使用
  3. 服务(通常)定义为: angular.module('module1')。factory('serviceA',function(){...});
  4. 如果以上都是真的,那么为什么serviceA的定义包含对module1的引用?不应该对任何想要使用它的模块一无所知吗?

    如果我正在构建module2并且我引用了serviceA.js以访问上述服务,它会告诉我module1未定义。

    我想我的问题是如何创建一组独立模块并让它们都访问全局服务?在所有示例中,我都看到该服务与特定模块紧密耦合。

1 个答案:

答案 0 :(得分:0)

factory()方法是模块上的方法,因此您需要一个模块实例才能调用它。从本质上讲,该声明表示您希望在该特定模块上定义该工厂。

如果你需要module2中的module1,那么module2应该声明对module1的依赖:

public class ScrollInfo
{
    public double HorizontalPosition;
    public double HorizontalMaximum;
    public double VerticalPosition;
    public double VerticalMaximum;
}

编写单元测试的一件事情很快就会告诉你,使用的东西越多,更多重要的是把它放在一个模块中。如果你试图将它视为"全球"因为它在很多地方使用,这意味着你必须引导整个应用程序只是为了使用那些基本上在任何地方使用的服务。