Angular DI在模块和控制器级别都能工作吗?

时间:2016-11-01 04:26:43

标签: javascript angularjs dependency-injection

有很多例子描述了DI在Angular.js中如何在控制器级别运行,但我是Angular的新手,我正在查看创建新模块的代码,当我查看以下代码时:

var app = angular.module("myApp", []); 

当它说如果这个模块使用其他模块时,我们可以在[]中指定它们。是不是也不是一种依赖注入?

那么说DI在Angular.JS的模块和控制器级别工作是否正确?

1 个答案:

答案 0 :(得分:2)

是的,DI适用于模块和控制器级别。

但是,区别在于

var app = angular.module("myApp", []); 

在上面一行中,您注入了modules模块所依赖的myApp

然而,在控制器级别,您注入了services

var app = angular.module("myApp", ['navigation']); 
app.controller("appController", function(navDataService){
});

因此,当AngularJS引导应用程序时,它会查看module个依赖项并加载这些模块并使services可用,这样就可以将它们注入到控制器中。