了解组件之外的注入
在 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 注入涉及以下注入器层次结构:
动态依赖解析
注入器根据注入器层次结构动态解析依赖关系。缺失的提供程序会在父注入器中自动搜索,并级联到应用程序注入器。
多级别提供程序配置
可以在每个注入器级别配置提供程序(应用程序, 成分)。这允许灵活的依赖项共享:
结论
通过利用 @Injectable 装饰器和了解注入器层次结构后,开发人员可以有效地在 Angular 2(Beta)中的组件外部注入服务,从而实现更高效的依赖管理和代码组织。
以上是如何在 Angular 2(Beta)中的组件之外注入服务?的详细内容。更多信息请关注PHP中文网其他相关文章!