我是angularjs的新人。我正在寻找一个应用程序代码。
<html>
.....
<script src="/my/app.main.js"></script>
<script src="/my/app.messages.js"></script>
<script src="/my/app.misc.js"></script>
<script src="/my/app.properties.js"></script>
并在这些javascript filse中包含angularjs模块同名。
main.js文件
(function () {
'use strict';
var app = angular.module('ngCookService');
app.run([.....
function (....) {
}]);
})();
messages.js文件
(function () {
"use strict";
var app = angular.module('ngCookService');
app.config(['$stateProvider', function ($stateProvider) {
................
}]);
})();
所有这些js文件都包含 ngCookService 模块。并且模块在自调用函数中定义。
这个系统如何运作?先前定义的模块是否覆盖?或新定义的 app 模块会杀死早期的对象?
答案 0 :(得分:6)
当仅使用模块名称调用时,angular.module()
是一个getter方法,并检索具有该名称的现有模块。因此,调用angular.module('ngCookService')
不会覆盖或替换模块。
为了让getter工作,在它之前的某个地方必须调用setter。这是通过使用多个参数调用angular.module()
来完成的(例如,所需模块的列表)......
angular.module('ngCookService', ['ngRoute']);
如果多次调用setter,则 模块被覆盖。