在大型项目中管理角度模块名称

时间:2015-06-17 13:20:26

标签: angularjs namespaces coding-style

我正在与一个开发团队合作开展一个大型角度项目。

我们遇到的问题是,如果你有一个组件的几个文件,比如一个指令。

一些-directive.js
一些指导性-controller.js

在两个文件的定义中,您必须将它们附加到模块,但是一个文件必须使用[]创建模块。如果开发人员忘记了,他们会在第二个文件中添加[],实际上会覆盖该模块。所以现在它变成了记忆游戏。每个开发人员都必须记住只在一个文件[]

中声明模块

一些-directive.js

angular.module('some-module',['some-dependencies']).directive('some-directive',function(){});

一些-controller.js

angular.module('some-module',[]).controller('some-controller',function(){});

我们一直在使用以下方法。还有更好的方法吗?

一些-directive.js
一些指导性,module.js
some-directive-controller.js

其中some-directive-module仅包含模块创建,包括任何依赖项,并且需要任何.config。仍然需要记住开发者 angular.module('some-directive')在没有方括号的所有其他文件中。

一些-指令-module.js

angular.module('some-directive',[])
.config(//someconfig stuff);

some-directive-module.js

angular.module('some-directive).directive(//declare directive);

some-directive-controller.js

angular.module('some-directive).controller(//declare contrller used by directive);

我建议我们应该做以下事情,它消除了覆盖模块的问题,但我从其他开发者那里得到了一些负面反馈

一些-指令-module.js

angular.module('some-directive',['some-directive.directive','some-directive.controller'])
.config(//someconfig stuff);

some-directive-module.js

angular.module('some-directive.directive',[]).directive(//declare directive);

some-directive-controller.js

angular.module('some-directive.controller',[]).controller(//declare contrller used by directive);

有更好的方法吗?或者上述选项之一是否正确?

1 个答案:

答案 0 :(得分:1)

recommended waymultiple competent people})是使用setter-getter-syntax(使用angular.module("someModule",[])创建一次并从那里访问angular.module("someModule"))。将模块定义和配置放在一个文件中似乎非常干净,并且是许多开发人员之间的常见做法。但请确保不要为每个指令创建一个模块 - 将服务,指令,常量等组合成合理的功能模块。

在我看来,清楚地说明文件包含的名称也是个好主意,所以你的some-directive-module.js方法对我来说似乎很好。如果开发人员“蠢蠢欲动”并“疯狂地添加[]”,他们应该在手腕上得到一记耳光,然后解释模块如何以角度工作,所以他们不再这样做了; - )