在以前學習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