新手:帮助理解AngularJS / Javascript语法

时间:2014-11-16 08:02:42

标签: javascript angularjs

我一直在阅读AngularJS代码并试图理解传递给.config方法的参数。从下面的示例中,它似乎是将[]传递给.config。困扰我的部分是根据docs.angularjs.org上的angular.Module文档,方法config,将configFn作为一个函数参数。那么为什么在下面的例子中我看到[' $ routeProvider',function(..){..}]被作为参数传递?有人可以帮助澄清我的困惑吗?

var sampleApp = angular.module('phonecatApp', []);

sampleApp .config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/addOrder', {
        templateUrl: 'templates/add-order.html',
        controller: 'AddOrderController'
      }).
      when('/showOrders', {
        templateUrl: 'templates/show-orders.html',
        controller: 'ShowOrdersController'
      }).
      otherwise({
        redirectTo: '/addOrder'
      });
  }]);

2 个答案:

答案 0 :(得分:3)

使用数组表示法是为了避免在为生产修改js文件时注入的模块出现问题。由于字符串不会被缩小,因此在数组中将'$ routeProvider'作为字符串传递是Angularjs中的约定。

答案 1 :(得分:0)

如果您没有传递字符串参数并且只传递了该函数,那么结果会相同。代码可以工作,但是当你试图缩小你的应用程序时会遇到问题。

缩小器将重命名函数的参数,因此Angular无法理解您的依赖项是什么。

您可以通过传递一个数组来解决这个问题,该数组的参数名称与函数所需的顺序相同。

这不仅发生在配置功能中,而且发生在需要注入依赖项的任何地方。

相关问题