【发布时间】:2021-02-15 04:42:03
【问题描述】:
我对以下与其他模块中的组件和服务相关的文档感到困惑。 https://angular.io/guide/sharing-ngmodules#using-components-vs-services-from-other-modules
我了解文档中的说明,导入 NgModule 的典型用途是获得对共享组件、管道和指令的访问权限。
它还声明了以下内容: “使用服务导入模块意味着您将拥有该服务的新实例,这通常不是您所需要的(通常希望重用现有服务)。使用模块导入来控制服务实例化。” em>
这就是我困惑的地方。我对 DI 系统的理解(至少在一个急切加载的应用程序中)是,如果您导入一个共享模块并将一个服务列为提供者,那么该服务最终将在根注入器中注册。 NgModule 导入树在编译过程中被展平,每个服务提供者都注册在根注入器中。
这里的文档说“使用服务导入模块意味着您将拥有该服务的新实例”。这不一定是真的。
我在这里遗漏了什么吗?当他们提到模块时,他们不是指 NgModule 吗?
【问题讨论】:
标签: angular dependency-injection angular-services ng-modules