为什么要在angularjs中定义多个同名的模块呢?

why define multiple module with same name in angularjs

本文关键字:模块 angularjs 定义 为什么      更新时间:2023-09-26

我是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文件中包括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模块杀死早期的对象?

当仅使用模块名称调用时,angular.module()是一个getter方法,并检索具有该名称的现有模块。因此,调用angular.module('ngCookService')不会覆盖或替换模块。

要使getter工作,必须在它之前的某个地方调用setter。这是通过调用angular.module()超过1个参数(例如,所需模块的列表)来完成的…

angular.module('ngCookService', ['ngRoute']);

如果setter被多次调用,则模块将被重写