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