在以前学习AngularJS的过程当中,都是用到了显式依赖注入,好比: javascript
<script type="text/javascript"> angular.module('app', []) .controller('Controller1', function($scope) { $scope.something = 'hello world'; }); </script>
依赖注入$scope。这么写有个弊端,在发布的时候,每每要压缩JavaScript代码,压缩时,会替换掉变量名。好比$scope会替换成长度更小的a,可是$scope这个名字又是不能改动的,不然会没法识别。因此这种隐式的依赖注入方法很差。 html
AngularJS提倡用如下这种方法: java
<script type="text/javascript"> angular.module('app', []) .controller('Controller1', ['$scope', function(parm){ parm.something = 'hello world'; }]); </script>
这种方法是显式的依赖注入,把$scope看成一个字符串,则压缩时不会被替换掉,随便命名一个参数parm,在函数体中运用时同名便可。 app
不只是controller,其它须要依赖注入的地方都提倡用显式的方法。 ide