2015-10-17 46 views

回答

4

它的角度依賴注入的方式被定義,所以你可以uglify源代碼而不打破它。

例如,控制器可以限定兩個依賴這樣的:

angular.module('App').controller('SomeController', ['ngRoute', 'ngFileUpload', function (route, fileUpload) { 
    console.log('this is ngRoute', route); 
    console.log('this is fileUpload', fileUpload); 
}]); 

角將實例控制器與所述依賴關係如在數組中的順序相同。所以這不是你給這個論點的名字。現在想象一下,你想醜化代碼,使它像這樣:

angular.module('App').controller('SomeController', ['ngRoute', 'ngFileUpload', function (a, b) { 
    console.log('this is ngRoute', a); 
    console.log('this is fileUpload', b); 
}]); 

你仍然會得到你應該的依賴關係。 然而,如果你用這個符號:

angular.module('App').controller('SomeController', function (ngRoute, ngFileUpload) {}); 

你不能醜化代碼重命名功能參數。

-1

它沒有特別的「AngularJS」意義。它代表一個Javascript數組,並且通過執行['ngRoute', 'ngFileUpload'],傳遞了一組元素(或者這個例子中的字符串),這些元素被傳遞給你正在調用的函數。

angular.module('myapp', ['ngRoute', 'ngFileUpload']); 

現在是到module函數來決定它如何解釋您傳遞數組。但要回答你的問題,它只是一個數組。

0

它用於註釋。如果您使用任何縮小或混淆軟件,您的注射將被重新命名。數組中的註釋將允許角度映射到正確的方法。

上有$injector在角度文檔可用的更多的信息:https://docs.angularjs.org/api/auto/service/ $注射器

-1

在模塊定義的[]參數可被用來定義從屬模塊。

例如,

angular.module('myApp', [])的空數組。這個數組是myApp依賴的模塊列表。

相關問題