我是否需要为每个单独的文件定义模块?

时间:2015-04-09 19:14:03

标签: javascript angularjs

Angular的新手,试图找出我应该如何modularize我的应用。

app
    toolbar
        toolbar.module.js
        menu.html
        index.html
        search.html
    sub-system-1
        subSystem1.module.js
        directive-template.html
    sub-system-2
        subSystem2.module.js
        directive-template.html

例如,toolbar.module.js有3个指令(菜单,索引,搜索),每个指令都有自己的控制器,服务。所有控制器,指令定义和服务都在toolbar.module.js中定义......在维护代码方面有点令人困惑。

是否有可能提出更细粒度的设置,使得每个指令都包含在其控制器旁边的自己的文件中。服务?

我想我可以补充一下:

        menu.directive.js

里面有像

这样的东西
var module = angular('toolbar.menu.directive',[]);
module.directives(...);//add menu directive to the module

然后在toolbar.modules里面有类似的东西:

var module = angular('toolbar',[toolbar.menu.directive]);

这是我通过定义大量细粒度模块来实现这一目标的唯一方法吗?

1 个答案:

答案 0 :(得分:1)

不,你不必定义大量的小模块。在Angular中,您可以通过省略第二个参数来引用现有模块:

angular.module('moduleName');

通过执行此操作,您可以将各种工具栏指令,控制器和服务拆分为单独的文件,并在每个文件中简单地引用工具栏模块,如下所示:

angular.module('toolbar')
  .controller('MenuCtrl', function() {
    // ...
  });