2015-11-19 127 views
2

我看到人們使用數組中的參數,像這樣正確的使用方法DI在angularJS

myAngularApp.controller("nameOfController", ["$firstDependency", "$secondDependency", function ($firstDependency, $secondDependency) { 

// code here 
}]); 

另一方面手我看到下面的代碼也無一不是工作

myAngularApp.controller("nameOfController", function ($firstDependency, $secondDependency) { 

// code here 
}); 

在角度文檔中,我看到了數組的使用。爲什麼角度允許後一種方法?哪一個是絕對推薦?事實上,在角度文檔樣本中,指令不使用數組。

+0

指定的數組僅用於最小化您的代碼。這通常是您可以採取的最佳方法 – scniro

回答

2

$注入器必須知道注入函數的參數。有三種不同的方法可以告訴噴油器要噴射什麼。

選項1:添加叫做$注入到該函數的屬性:

FN $注入= [ '$ firstDependency', '$ secondDependency']

選項2:使用陣列等註釋:

[ '$ firstDependency', '$ secondDependency',函數(X,Y){...}]

選項3:如果沒有$注入屬性和無註釋,AngularJS使用函數參數:

函數($ firstDependency,$ secondDependency){...}。

如果您縮小代碼,則無法使用第三種替代方法,因爲這會更改參數名稱。

這三種方法都是合法的,並提供相同的結果。

1

我推薦使用第一種方法:

myAngularApp.controller("nameOfController", ["$firstDependency", "$secondDependency", function ($firstDependency, $secondDependency) { 

// code here 
}]); 

這是因爲你可以用這種方法運行如下代碼,而不能與其他方法,你上市。

+0

如果您要縮小源代碼,這是正確的方法。 –