为什么要创建多个AngularJS模块?

G. *_*ard 6 angularjs

我很困惑.AngularJS要求在模块中创建服务,控制器和指令.但是,这些服务,控制器和指令可以注入到其中存在的模块的任何其他服务,控制器或指令中!正确?并且,除了ng-app之外,我还没有看到任何关心模块名称的IDE或工具.那么,为什么创建多个模块?在源代码中创建模块实际上是否具有除可读性之外的好处?

例...

(function(module) {

    var dir = function(something) {
        return {
        };
    };

    module.directive("myDirective", dir);

}(angular.module("pointlessModuleName")));
Run Code Online (Sandbox Code Playgroud)

我已经尝试找到答案,但一直感到困惑......
Angularjs中的多个模块

Daa*_*lst -1

可以创建一个可以完成所有事情的大模块,但是 Angular 已经设置好,以便您可以将责任分配给不同的模块。

~除了可读性之外,创建模块实际上还有其他好处吗?

您可能想了解一下 Angular 中不同功能的作用。例如,服务可以被视为始终返回相同数据的单例。这对于创建 HTTP 请求以从 API 接收数据非常有用。

创建一个指令,以便它可以使用 jqlite 访问 DOM,这使得它非常适合创建 UI 组件。然后 Angular 有很多其他东西可以在一个模块中创建,比如常量。

有大量关于 Angular 的介绍,其中解释了所有这些内容。如果您正在寻找一个好的 IDE,我个人使用 webstorm,它对 Angular 有很好的支持。

编辑 2015 年 4 月 16 日

我承认我有点误解/误读了你的问题。

您将能够创建一个名为“app”的模块,其中包含所有指令、控制器等。让我从 Angular 网站 ( https://docs.angularjs.org/guide/module ) 链接到模块的优点:

  1. 声明式过程更容易理解。
  2. 您可以将代码打包为可重用模块。
  3. 模块可以按任何顺序(甚至并行)加载,因为模块会延迟执行。
  4. 单元测试只需加载相关模块,这可以保持快速。
  5. 端到端测试可以使用模块来覆盖配置。

第 1 点是你的可读性。

2表示可重用性。您将能够创建一个带有 html 小部件的库,例如您可以在不同的项目中使用它。请注意,如果您使用第三方库,则您已经在使用模块系统。

3 意味着模块加载的灵活性。

4+5意味着可测试性。如果您有一个模块,其中包含所有代码,那么您将无法轻松地对应用程序的各个部分进行单元测试。您可以更轻松地覆盖设置,还可以将模拟对象注入到模块中。