3
考慮以下代碼:如果我不指定字符串,Angular如何知道要注入什麼?
angular.module('app', [])
.controller('MainCtrl', function ($scope) {
...
});
我知道,以避免注射的問題時,JS已經過壓縮,應使用依賴注入的陣列形式:
angular.module('app', [])
.controller('MainCtrl', ['$scope', function ($scope) {
...
}]);
但如何角知道第一個大小寫(非數組)要注入什麼?如果我使用.controller('MainCtrl', function (scop)
而不是$scope
,該怎麼辦?它解析我的JS並查找匹配其某些提供者的函數參數名稱嗎?
這是正確的。他們接受函數,將其變成一個字符串,並查看依賴關係。然後將其匹配到應用程序中的服務/工廠模塊。由於依賴關係被重命名爲單個字母,因此它會縮小規模,並且無法映射到相應的應用程序模塊。 – 2014-10-27 02:20:16
'fn = fn.toString();'←this。 – 2014-10-27 02:22:34
@ZackArgyle如果你使用ng-annotate(例如,通過grunt-ng-annotate,ngannotate-rails等),你可以忽略字符串列表和* not * break minification。 – 2015-01-17 00:47:57