建立控制器 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');
}]);