角点模块名称中的点是什么意思

时间:2016-11-02 23:23:11

标签: javascript angularjs

我是这个领域的新手。当我读到一些代码时 https://plnkr.co/edit/YeahrG28bT2izX8gMKor?p=preview 我发现,如果我没有<body ng-app="mainModule"> <div ng-controller="mainController"> <form name="personForm" ng-model-options="{ updateOn: 'submit' }" novalidate> <md-input-container> <label>First name:</label> <input id="firstNameEdit" type="text" name="firstName" ng-model="person.firstName" required/> <div ng-messages="personForm.firstName.$error" role="alert"> <div ng-message="required">You did not enter a first name</div> </div> </md-input-container> <br/> <md-input-container> <label>Last name:</label> <input id="lastNameEdit" type="text" name="lastName" ng-model="person.lastName" required/> <div ng-messages="personForm.lastName.$error" role="alert"> <div ng-message="required">You did not enter a last name</div> </div> </md-input-container> <br/> <md-button type="submit">Save</md-button> <md-button ng-click="personForm.$rollbackViewValue();">Cancel</md-button> <!-- <ng-include src="'addressForm.html'"></ng-include> --> </form> <br/> <strong> <label for="userDebugText">Person:</label> </strong><br/> <!-- <textarea id="userDebugText">{{person | json}}</textarea><br/> --> <pre id="userDebugText">{{person | json}}</pre> <br/> <strong> <label for="firstNameTxt">personForm.firstName:</label> </strong><br/> <pre id="firstNameTxt">{{personForm.firstName | json}}</pre> <strong> <label for="lastNameTxt">personForm.lastName:</label> </strong><br/> <pre id="lastNameTxt">{{personForm.lastName | json}}</pre> <strong> <label for="lastNameTxt">personForm:</label> </strong><br/> <pre id="personFormTxt">{{personForm | json}}</pre> </div> </body> 'myApp.dashboard','myApp.value',那就无法工作。

如果我这样写:

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

它也不起作用。

你能否告诉我这里的点是什么意思以及为什么(function() { angular.module('myApp', []); })(); (function() { angular.module('myApp.dashboard', ['myApp.value']); })(); (function() { angular.module('myApp.value', []); })(); 不起作用?

对不起,这段代码实在太乱了,我还没有做太多关于它的事情,只是为了测试。

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

补充:我不应该问第二个问题,我在其他地方犯了一个错误,抱歉。

2 个答案:

答案 0 :(得分:5)

实际上是一种可以遵循的编码风格,以消除命名冲突。

  

对子模块使用唯一命名约定和分隔符。

     

为什么?:唯一名称有助于避免模块名称冲突。分隔符有帮助   定义模块及其子模块层次结构。例如app可能是   你的根模块,而app.dashboard和app.values可能是模块   用作app的依赖项。

参考 John Papa Angular Style Guide Style Y021

我还建议您清楚地了解角度中每个组件的样式指南,如John Papa在上面的 Github 回购中所述。

答案 1 :(得分:4)

['myApp.dashboard','myApp.value']讲述了依赖关系。 这意味着myApp需要使用这些依赖项才能工作。

至于点,它只是一个很好的命名约定。您也可以不使用点。 名称myApp.dashboard可以帮助显示dashboard模块是myApp模块的部分或子模块。但从技术上讲,点不是必需的。您也可以将其命名为dashboard。依赖关系在[ ]数组中明确表示,而不是名称本身。