真正的依赖注入

时间:2015-04-08 16:02:04

标签: angularjs

我们假设我有以下代码。

$scope.rateApp = function () {
    Service.rateApp(true);
}

当我不将服务作为控制器的要求时,AngularJs会说:

ReferenceError: Service is not defined

但它告诉AngularJs支持依赖注入。

我的问题是,如果AngularJs真的支持依赖注入,那么不应该自动将所需的服务注入代码吗?

为什么它让我们指定依赖项列表?我的问题是否有意义,或者我在没有RTFM的情况下问一个愚蠢的问题?

1 个答案:

答案 0 :(得分:0)

依赖注入模式始终要求对象指定它们所需的依赖项。

  

在软件工程中,依赖注入是一种软件设计模式,它实现了软件库的控制反转。调用者将发现和导入服务或软件模块的控制流委托给外部框架。

这些依赖项的提供方式因注入框架而异,并且始终至少需要一些设置来注册将要请求的模块。

在AngularJS中,您通常使用Module Factory注册您的服务,如文档中所示:

https://docs.angularjs.org/guide/services