在之前學習AngularJS的過程中,都是用到了顯式依賴注入,比如:
<code><</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>></code>
<code> </code><code>angular.module('app', [])</code>
<code> </code><code>.controller('Controller1', function($scope) {</code>
<code> </code><code>$scope.something = 'hello world';</code>
<code> </code><code>});</code>
<code></</code><code>script</code><code>></code>
依賴注入$scope。這麼寫有個弊端,在釋出的時候,往往要壓縮JavaScript代碼,壓縮時,會替換掉變量名。比如$scope會替換成長度更小的a,但是$scope這個名字又是不能改動的,否則會無法識别。是以這種隐式的依賴注入方法不好。
AngularJS提倡用以下這種方法:
<code> </code><code>.controller('Controller1', ['$scope', function(parm){</code>
<code> </code><code>parm.something = 'hello world';</code>
<code> </code><code>}]);</code>
這種方法是顯式的依賴注入,把$scope當作一個字元串,則壓縮時不會被替換掉,随便命名一個參數parm,在函數體中運用時同名即可。
不僅是controller,其它需要依賴注入的地方都提倡用顯式的方法。
本文轉自 iampomelo 51CTO部落格,原文連結:http://blog.51cto.com/iampomelo/1669345,如需轉載請自行聯系原作者