Angular 2 中的服务注入:综合指南
将服务注入组件是 Angular 2 中的一项基本任务。然而,问题出现了:我们如何将服务注入到组件之外的其他服务中?让我们探索实现这一目标的有效方法。
要将服务注入到服务中,我们需要在每个要注入的服务上使用 @Injectable 装饰器。该装饰器允许在当前执行链的注入器中创建或检索相应的类型实例。
Angular 2 应用程序采用注入器的分层树,其中每个注入器都链接到特定的组件。当 @Injectable 装饰器应用于类时,Angular 2 会尝试在注入器树中创建或获取该类的实例。
考虑以下应用程序结构:
在此场景中,当 ChildComponent 时 初始化,Angular 2 定位Service1 在 ChildComponent 注入器中,然后在 AppComponent 注入器中,然后在应用程序注入器中。
类似地,当 Service1 时 尝试注入 Service2,发生相同的注入器查找过程。因此,我们可以根据所需的共享范围在应用程序的各个级别注入服务。
如果在应用程序级别定义提供者,则创建的实例将在整个应用程序中共享,包括所有组件和服务。通过在组件级别定义提供程序,实例仅限于组件本身、其子组件以及依赖关系链中涉及的服务。
这种分层注入机制提供了组织和管理依赖关系的灵活性。为了更全面的理解,请参阅 Angular 2 关于分层依赖注入的文档。
以上是如何在 Angular 2 中将服务注入到其他服务中?的详细内容。更多信息请关注PHP中文网其他相关文章!