有很多例子描述了DI在Angular.js中如何在控制器级别运行,但我是Angular的新手,我正在查看创建新模块的代码,当我查看以下代码时:
var app = angular.module("myApp", []);
当它说如果这个模块使用其他模块时,我们可以在[]中指定它们。是不是也不是一种依赖注入?
那么说DI在Angular.JS的模块和控制器级别工作是否正确?
答案 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
可用,这样就可以将它们注入到控制器中。