天天看点

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,如需转载请自行联系原作者

继续阅读