Angular中的双定义注入模块

时间:2014-08-31 02:52:18

标签: javascript angularjs

我对角度很新。我知道Angular支持DI,但我无法理解为什么我们需要两次定义注入模块(在这种情况下为$ scope)。

angular.module('docsBindExample', [])
  .controller('Controller', ['$scope', function($scope) {
    $scope.name = 'Max Karl Ernst Ludwig Planck (April 23, 1858 – October 4, 1947)';
  }]);

2 个答案:

答案 0 :(得分:3)

您没有 两次定义它以使其按原样运行,但这样可以避免缩小问题。当你缩小时,$scope变量可能被称为完全不同的变量,如a,而Angular不知道这意味着什么 - 它使用字符串来解决这个问题。

我只是通过缩小器来演示:

angular.module("docsBindExample",[]).controller("Controller",["$scope",function(e){e.name="Max Karl Ernst Ludwig Planck (April 23, 1858 – October 4, 1947)"}])

这样,Angular仍然可以匹配依赖关系

答案 1 :(得分:1)

字符串用于防止缩小/混淆。在那之后,您的参数/方法/变量等将被随机重命名。该字符串列表(按顺序)是一种匹配依赖项备份的方法。