创建控制器 Minification 安全
有几种不同的方法可以保护你的控制器创建免受缩小。
第一个称为内联数组注释。它看起来如下:
var app = angular.module('app');
app.controller('sampleController', ['$scope', '$http', function(a, b){
//logic here
}]);
控制器方法的第二个参数可以接受依赖关系数组。正如你所看到的,我已经定义了 $scope
和 $http
,它们应该对应于控制器功能的参数,其中 a
将是 $scope
,而 b
将是 $http
。请注意,数组中的最后一项应该是你的控制器功能。
第二个选项是使用 $inject
属性。它看起来如下:
var app = angular.module('app');
app.controller('sampleController', sampleController);
sampleController.$inject = ['$scope', '$http'];
function sampleController(a, b) {
//logic here
}
这与内联数组注释的作用相同,但为那些喜欢一个选项而不是另一个选项的人提供了不同的样式。
注入依赖关系的顺序很重要
使用数组表单注入依赖项时,请确保依赖项列表与传递给控制器函数的相应参数列表相匹配。
请注意,在以下示例中,$scope
和 $http
是相反的。这将导致代码中出现问题。
// Intentional Bug: injected dependencies are reversed which will cause a problem
app.controller('sampleController', ['$scope', '$http',function($http, $scope) {
$http.get('sample.json');
}]);