使用angularjs框架时经常需要向自定义controller或指令中注入angularjs对象,比如$scope等,一般情况下我们采用下面这种写法:

controller: function($scope, $http, $stateParams) {
  ...
}

这中写法在不进行minify的时候没问题,但一旦压缩后就变成:

controller: function(a,b,c) {  ...}

自然无法完成参数注入了,解决办法并不难,按着下面的书写格式就可以:

controller: ['$scope','$http','$stateParams',function($scope, $http, $stateParams) {
  ...
}];

不过anguarljs也提供了另外一种手动注入的方法:

function myCtrl($scope, $http, $stateParams){
  ...
}

myCtrl.$inject = ['$scope','$http','$stateParams'];

controller: myCtrl;
已赞 3 0 评论