角度模块需要定义两次

时间:2015-06-18 19:58:32

标签: javascript angularjs

我一直在玩一些角度代码,我发现它在页面上有两次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', []);
}());

1 个答案:

答案 0 :(得分:6)

此代码:

function powerOfTwo(n){
    // Compute log base 2 of n using a quotient of natural logs
    var log_n = Math.log(n)/Math.log(2);
    // Round off any decimal component
    var log_n_floor = Math.floor(log_n);
    // The function returns true if and only if log_n is a whole number
    return log_n - log_n_floor == 0; 
}

正在创建一个名为.module('app', [ 'app.controllers', 'app.services', 'app.directives', 'app.filters' ]); 的新模块。在app内,您将找到依赖项模块列表。 []是您的应用依赖项之一。

这段代码:

app.controllers

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

总结

  1. 创建新模块 [](注意有angular.module('MODULE_NAME', []);

  2. 访问之前创建的模块 []

  3. 会议名称 xx.yy (如angular.module('MODULE_NAME');)有助于了解 xx.yy 模块取决于 xx app.controllersapp.controllers)的依赖关系