天天看點

AngularJS中的隐式和顯式依賴注入

       在之前學習AngularJS的過程中,都是用到了顯式依賴注入,比如:

<code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>&gt;</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>&lt;/</code><code>script</code><code>&gt;</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,如需轉載請自行聯系原作者

繼續閱讀