【发布时间】:2015-06-17 13:20:25
【问题描述】:
我正在与一个开发团队一起开展一个大型 Angular 项目。
我们遇到的问题是,如果您有多个文件用于一个组件,比如一个指令。
some-directive.js
一些指令控制器.js
在这两个文件的定义中,您必须将它们附加到一个模块,但是一个文件必须使用[] 创建模块。如果开发人员忘记四处寻找,他们将在调用的第二个文件中添加[] 实际上会覆盖模块。所以现在它变成了一个记忆游戏。每个开发者都必须记住只在一个文件中声明模块[]
some-directive.js
angular.module('some-module',['some-dependencies']).directive('some-directive',function(){});
一些控制器.js
angular.module('some-module',[]).controller('some-controller',function(){});
我们一直在使用以下方法。有没有更好的办法?
some-directive.js
一些指令模块.js
一些指令控制器.js
其中 some-directive-module 仅包含模块创建,包含任何依赖项,并执行任何所需的 .config。开发人员仍然需要记住 angular.module('some-directive') 在所有其他文件中不带方括号。
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);
我建议我们改为执行以下操作,它消除了覆盖模块的问题,但我收到了来自其他开发人员之一的一些负面反馈
some-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);
有没有更好的方法?或者上述选项之一是否正确?
【问题讨论】:
-
我建议你看看 John Papa 的 Angular 风格指南 github.com/johnpapa/angular-styleguide。它超越了命名模式,并为您提供了 Angular 应用程序的整个世界的良好实践。它也很灵活,因此您可以根据自己的喜好进行调整。我在我的项目中使用它,一切都很好。
标签: angularjs namespaces coding-style