需要有关angularjs中控制器依赖注入的帮助

时间:2015-12-03 13:09:31

标签: angularjs angular-controller

我在angularjs控制器中看到过两种依赖注入方式 方法一:

 mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {}); 

方法2:

mainApp.controller('CalcController', ['$scope', 'CalcService', 'defaultInput',function($scope, CalcService, defaultInput) {}]);

method1和method2之间的差异是什么?

4 个答案:

答案 0 :(得分:1)

第二种方法可使您的注射Answer安全无虞。实际的参数名称缩短了,但通过提供它们,它仍然可以映射。

所以你应该使用第二种方法。

答案 1 :(得分:0)

当你缩小javascript时,方法1不起作用,因为" CalcService"将被重命名为" _a",这就是为什么在版本2中,你坚持使用名称,因为minifiers不会触及字符串。因此服务名称完好无损。

答案 2 :(得分:0)

方法二允许您的代码缩小并仍能正常运行。

Javascript没有命名函数参数,但是角度的依赖系统类型扩展了它以允许命名参数(这只是它的依赖系统,而不是整体)。多数民众赞成如何知道注入什么。

然而,缩小代码会重命名打破角度注射系统的功能参数。

使用数组按名称查找实际依赖关系,然后将其插入到函数中该位置的变量中。这意味着数组中的顺序必须与您希望使用的函数参数的顺序相匹配。

答案 3 :(得分:0)