有两种不同的方法可以保护您的控制器创建免受缩小。
第一个称为内联数组注释。看起来如下:
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'); }]);