2015-12-03 43 views
0

HI幫助的依賴注入控制器我已經看到了依賴注入的2種方式angularjs控制器 方法一:需要angularjs

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

方法2:

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

什麼是方法1差異性之探源和method2?

回答

1

第二個方法讓你打針minification安全。實際的參數名稱會縮短,但通過將它們提供兩倍,它仍然可以被映射。

所以你應該使用第二種方法。

0

方法1,當您壓縮,因爲「CalcService」將被重命名爲類似「_a」,這就是爲什麼在第2版,你堅持下去的名字,因爲minifiers不碰弦的JavaScript不起作用。因此服務名稱是完整的。

0

方法二可以讓你的代碼進行微細化以及仍然正常工作。

JavaScript沒有命名的函數參數,但是角度的依賴系統kindof擴展這允許命名參數(那只是它的依賴性系統,而不是作爲一個整體)。這就是它如何知道要注入什麼。

然而涅槃代碼重命名功能參數打破angulars噴射系統。

什麼角度會做的是使用數組名稱查找實際的依賴,然後將其插入的功能位置的變量。這意味着數組中的順序必須與您希望使用的函數參數的順序相匹配。