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

Does Angular DI work at both Module and Controller level?

本文关键字:工作 DI 模块 Angular 控制器      更新时间:2023-09-26

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

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

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

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

是的,DI在模块和控制器级别都可以工作。

但是,区别是

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

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

而在控制器层面,你注入services

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

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