Javascript 角度模块需要定义两次

Javascript 角度模块需要定义两次,javascript,angularjs,Javascript,Angularjs,我一直在玩一些角度代码,我发现页面上有两次app.controllers。一次进入应用程序模块顶部,一次进入底部。但当我删除其中一个时,代码就会中断。我不知道你为什么需要这两个,因为app.services不需要它,也不需要指令或过滤器。对原因有什么见解吗 (function () { angular .module('app', [ 'app.controllers', 'app.services', 'app.direc

我一直在玩一些角度代码,我发现页面上有两次
app.controllers
。一次进入应用程序模块顶部,一次进入底部。但当我删除其中一个时,代码就会中断。我不知道你为什么需要这两个,因为
app.services
不需要它,也不需要指令或过滤器。对原因有什么见解吗

(function () {
  angular
    .module('app',
      [
        'app.controllers',
        'app.services',
        'app.directives',
        'app.filters'
      ]
    )
    .config(['$sceDelegateProvider','$routeProvider',
      function ($sceDelegateProvider, $routeProvider) {
        $sceDelegateProvider.resourceUrlWhitelist([
           'self',
           'https://maps.google.com/**']);
        $routeProvider

          // Home
          .when('/',
            {
            templateUrl: 'partials/home.html'
            }
          )
        // Default
          .otherwise('/');
        }
      ]
    );
    angular.module('app.controllers', []);
}());
此代码:

.module('app', [
   'app.controllers',
   'app.services',
   'app.directives',
   'app.filters'
 ]);
正在创建名为
app
的新模块。在
[]
中,您将找到依赖项模块的列表<代码>应用程序控制器是您的应用程序依赖项之一

鉴于本守则:

angular.module('app.controllers', []);
正在创建名为app.controllers的新模块,该模块没有依赖项=>
[]
(空数组)


概括
  • 创建新模块的步骤
    angular.module('module_NAME',[])(注意有
    []

  • 访问先前创建的模块
    angular.module('module_NAME')

  • 约定名称xx.yy(如
    app.controllers
    )有助于了解模块xx.yy依赖于xx
    app.controllers
    app
    的依赖项)


  • app.controllers是一个单独的模块,在顶部导入主模块,然后在底部定义。真想不到它能起作用。另请看被调用函数的结尾。。应该是这样的:(函数(){}();好的,这是有道理的,但是为什么app.filters、services和directive不需要创建一个新模块呢?我假设它们是在另一个文件中定义的?!在单独的文件中分离AngularJS模块是很常见的,它们可能只是在文件的顶部而不是在这个文件中完成,这使得它发生的情况不那么明显。是的,我只是在它们各自的文件中找到了它们。谢谢