2015-11-19 126 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

如果您要缩小源代码,这是正确的方法。 –