首页 >web前端 >js教程 >如何在 Angular 2(Beta)中的组件之外注入服务?

如何在 Angular 2(Beta)中的组件之外注入服务?

Patricia Arquette
Patricia Arquette原创
2024-11-17 10:26:04992浏览

How Can You Inject Services Outside of Components in Angular 2 (Beta)?

Angular 2(测试版)中组件外部的服务注入

了解组件之外的注入

在 Angular 2(测试版)中),依赖注入使开发人员能够在组件内无缝地传递服务。然而,常常需要在组件类之外注入服务。

通过 @Injectable Decorator 注入服务

在组件之外注入服务的关键在于使用服务类上的 @Injectable 装饰器。这个装饰器表示可以注入类的构造函数参数。

分层注入系统

Angular 2 采用映射到组件树的分层注入器系统。服务的注入器没有明确定义;相反,它们与组件隐式关联。分层链接确保子注入器可以访问父注入器中定义的提供程序。

示例应用程序和注入器关系

考虑以下带有 AppComponent(主组件)的示例应用程序、ChildComponent、Service1(由 ChildComponent 使用)和 Service2(由Service1):

<br>应用程序<pre class="brush:php;toolbar:false"> |

AppComponent

 |

ChildComponent
getData() --- Service1 --- Service2

此应用程序有三个注入器:application、AppComponent 和 ChildComponent。 ChildComponent 的 Service1 注入和 Service1 的 Service2 注入涉及以下注入器层次结构:

  1. ChildComponent 注入器
  2. AppComponent 注入器
  3. Application 注入器

动态依赖解析

注入器根据注入器层次结构动态解析依赖关系。缺失的提供程序会在父注入器中自动搜索,并级联到应用程序注入器。

多级别提供程序配置

可以在每个注入器级别配置提供程序(应用程序, 成分)。这允许灵活的依赖项共享:

  • 应用程序级提供程序创建在整个应用程序中共享的实例。
  • 组件级提供程序创建在组件树和涉及的服务中共享的实例。

结论

通过利用 @Injectable 装饰器和了解注入器层次结构后,开发人员可以有效地在 Angular 2(Beta)中的组件外部注入服务,从而实现更高效的依赖管理和代码组织。

以上是如何在 Angular 2(Beta)中的组件之外注入服务?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn