AngularJS - 在定义模块时,第三个参数是数组时的含义是什么?

时间:2013-11-22 02:02:43

标签: angularjs

我是AngularJS的新手。我一直在阅读Pawel Kozlowski和Peter Bacon Darwin的优秀书Mastering Web Application Development with AngularJS。但是,我对某些概念仍然有点模糊,因此我决定逐行浏览sample application以尝试更好地理解AngularJS在实际应用中的使用方式。

在某些地方,我看到我无法在他们的书中找到解释的符号,也没有在API文档中看到过。我想知道是否有人可以对此有所了解,如上面链接的项目的/client/src/app/projectsinfo/projectsinfo.js文件所示:

angular.module('projectsinfo', [], ['$routeProvider', function($routeProvider){ 
    ...
}]);

我对angular.module方法的理解是它接受三个参数:

  • 模块的名称
  • 此模块可能依赖的其他模块的数组
  • 可选配置功能

但是,在上面的例子中,对于第三个参数,正在提供一个数组,数组中的第一个元素是一个字符串(我假设一个提供者?),然后是一个函数。谁能解释一下这里发生了什么?

1 个答案:

答案 0 :(得分:12)

angular.module()的语法是:

angular.module(name, [requires], configFn);

其中:

  • name 是模块的名称,
  • requires 是此模块所依赖的模块的可选列表,
  • configFn 是用于配置模块的函数。

这里configFn可以是函数或数组:

  • 如果它是一个函数,那么注入它的依赖项将根据参数的名称注入。
  • 如果它是一个数组,那么我们可以使用该数组指定需要注入的服务的名称,然后使用其他名称作为函数参数。当您的代码可能被缩小器混淆时,这非常有用。

上述文件中的代码似乎没问题。