创建角度模块的命名约定

时间:2015-05-27 08:31:28

标签: angularjs naming

我正在从以下网站AngularJS

学习AngularJS

他们提到了AngularJS的名称,如my.new.module

var module = angular.module( "my.new.module", [] );

我只想知道`my.new.module'的含义。为什么他们使用。点运营商。

我正在分享openstack(云计算的开源)源代码 https://github.com/openstack/horizon/blob/stable/kilo/horizon/static/angular/widget.module.js

(function () {
'use strict';
angular.module('hz.widgets', [
'hz.widget.form',
'hz.widget.help-panel',
'hz.widget.wizard',
'hz.widget.table',
'hz.widget.modal',
'hz.widget.modal-wait-spinner',
'hz.framework.bind-scope',
'hz.framework.workflow',
'hz.widget.transfer-table',
'hz.widget.charts',
'hz.widget.action-list',
'hz.widget.metadata-tree',
'hz.widget.metadata-display',
'hz.framework.validators'
])
.constant('basePath', '/static/angular/');
})();

他们在使用相同的东西,请描述我..

2 个答案:

答案 0 :(得分:0)

使用dot是不明确的..它是您向Module提供的实例名称 您也可以使用普通名称

angular.module('myApp',[]);

答案 1 :(得分:0)

它不是一个“操作员”,正如你的标题所暗示的那样,只是一个惯例。

点没有特殊意义,可能主要借用其他模块层次结构有意义的平台。

它通常用于为模块提供某种命名空间,以防止与其他模块发生名称冲突。因为,angularjs只有一个全局模块命名空间(即,当加载模块时,它将覆盖任何其他模块的同名)。因此,为防止冲突,通常将所有“mycompany”模块命名为“mycompany.somemodule”和“mycompany.othermodule”。

在openstack示例中,您已添加到您的问题中。正如我所解释的那样,他们使用点来分隔命名空间。

在这种情况下,他们似乎选择了名称空间hz(可能是“horizo​​n”的缩写)作为他们的“顶级”/项目命名空间。然后他们进一步将他们的名称空间分成widgetframework件。

因此,hz.widget.form的最终层次结构意味着类似于form widget项目的horizon #import组件。

但是,最后,它只是帮助确定模块所属/来自何处的惯例,并防止与其他模块发生名称冲突。