AngularJS 创建控制器,实现安全缩小

示例

有两种不同的方法可以保护您的控制器创建免受缩小。

第一个称为内联数组注释。看起来如下:

var app = angular.module('app');
app.controller('sampleController', ['$scope', '$http', function(a, b){
    //这里的逻辑
}]);

控制器方法的第二个参数可以接受一组依赖项。正如你所看到的,我定义$scope和$http应该对应于控制器功能的参数中,a将是$scope,和b会$http。请注意,数组中的最后一项应该是您的控制器功能。

第二个选项是使用$inject属性。看起来如下:

var app = angular.module('app');
app.controller('sampleController', sampleController);
sampleController.$inject = ['$scope', '$http'];
function sampleController(a, b) {
    //这里的逻辑
}

这与内联数组批注具有相同的功能,但为那些偏爱一个选项而不是另一个选项的人提供了不同的样式。

注入依赖项的顺序很重要

使用数组形式注入依赖项时,请确保依赖项列表与传递给控制器函数的相应参数列表匹配。

请注意,在下面的示例中,$scope和$http是相反的。这将在代码中引起问题。

// 故意的错误:注入的依赖项颠倒会导致问题
app.controller('sampleController', ['$scope', '$http',function($http, $scope) {
    $http.get('sample.json');
}]);