【问题标题】:Managing Angular Module names in a large project在大型项目中管理 Angular 模块名称
【发布时间】: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


【解决方案1】:

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

在我看来,通过名称明确文件包含的内容也是一个好主意,因此您的 some-directive-module.js 方法对我来说似乎很好。如果开发人员“四处寻找”和“疯狂地添加 []”,他们应该得到一记耳光,然后解释模块如何以角度工作,因此他们停止这样做;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 2019-11-24
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2020-04-04
    相关资源
    最近更新 更多