我是这个领域的新手。当我读到一些代码时
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']);
补充:我不应该问第二个问题,我在其他地方犯了一个错误,抱歉。
答案 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
。依赖关系在[ ]
数组中明确表示,而不是名称本身。