【问题标题】:Need Help on dependency injection for controller in angularjs [duplicate]需要关于angularjs中控制器的依赖注入的帮助[重复]
【发布时间】:2015-12-03 13:09:31
【问题描述】:

您好,我在 angularjs 控制器中看到了 2 种依赖注入方式 方法一:

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

方法二:

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

method1和method2有什么区别?

【问题讨论】:

    标签: angularjs angular-controller


    【解决方案1】:

    第二种方法使您的注射minification 安全。实际的参数名称会缩短,但通过将它们提供双精度,它仍然可以被映射。

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

    【讨论】:

      【解决方案2】:

      当您缩小 javascript 时,方法 1 不起作用,因为“CalcService”将重命名为“_a”之类的名称,这就是为什么在版本 2 中,您保留该名称,因为缩小器不接触字符串。因此服务名称是完整的。

      【讨论】:

        【解决方案3】:

        方法二允许您的代码被缩小并且仍然可以正常运行。

        Javascript 没有命名函数参数,但是 Angular 的依赖系统对此进行了扩展以允许命名参数(这只是它的依赖系统,而不是整体)。这就是它知道注入什么的方式。

        但是,缩小代码重命名函数参数会破坏 angulars 注入系统。

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

        【讨论】:

          【解决方案4】:

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-04-02
            • 2018-04-07
            • 1970-01-01
            • 1970-01-01
            • 2014-10-14
            • 2013-03-25
            • 1970-01-01
            相关资源
            最近更新 更多