【问题标题】:Naming convention of creating angular modules创建角度模块的命名约定
【发布时间】:2015-05-27 08:31:27
【问题描述】:

我正在从以下站点学习 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/');
})();

这里他们用的是同一个东西,请描述一下我..

【问题讨论】:

  • 我猜,作者有 C# 背景,喜欢把它分成“命名空间”;)你也可以写“MyNewModule”。

标签: angularjs naming


【解决方案1】:

使用点 .. 不是强制性的,它是您提供给 Module 的实例名称 您也可以使用普通名称

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

【讨论】:

  • 每当您使用 ng-app="myApp" 提供价值时,它都会使用指令搜索属性。如果存在值,那么您已经使用 angular.module 定义它
【解决方案2】:

它不是一个“运算符”,正如你的标题中提到的,它只是一个约定。

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

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

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

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

因此,hz.widget.form 的最终层次结构类似于“form widget 组件,它是 horizon 项目的一部分”。

但是,归根结底,这只是一个约定,有助于识别模块属于/来自何处,并防止与其他模块发生名称冲突。

【讨论】:

  • 感谢回复,我更新了我的源代码请看,我只是分享openstack源代码,我们使用相同的命名约定,请详细说明,
猜你喜欢
  • 2019-01-14
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多