>웹 프론트엔드 >JS 튜토리얼 >Angular 2에서 다른 서비스에 서비스를 주입하는 방법은 무엇입니까?

Angular 2에서 다른 서비스에 서비스를 주입하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-26 22:31:13218검색

How to Inject Services into Other Services in Angular 2?

Angular 2의 서비스 주입: 종합 가이드

구성 요소에 서비스를 주입하는 것은 Angular 2의 기본 작업입니다. 그러나 의문이 생깁니다. : 구성 요소 외부의 다른 서비스에 서비스를 어떻게 주입할 수 있나요? 이를 달성하는 효과적인 방법을 살펴보겠습니다.

서비스에 서비스를 주입하려면 주입할 각 서비스에 @Injectable 데코레이터를 사용해야 합니다. 이 데코레이터를 사용하면 현재 실행 체인의 인젝터에서 해당 유형 인스턴스를 생성하거나 검색할 수 있습니다.

Angular 2 애플리케이션은 각 인젝터가 특정 구성 요소에 연결되는 인젝터의 계층적 트리를 사용합니다. @Injectable 데코레이터가 클래스에 적용되면 Angular 2는 인젝터 트리에서 클래스의 인스턴스를 생성하거나 가져오려고 시도합니다.

다음 애플리케이션 구조를 고려하세요.

  • AppComponent: AppComponent의 루트 구성 요소 application
  • ChildComponent: Service1
  • Service1
  • 과 상호 작용하는 AppComponent 내에 중첩된 구성 요소: ChildComponent에서 사용하는 서비스 Service2
  • Service2 주입: Service1

에 주입된 서비스 이 시나리오에서 ChildComponent가 초기화되고 Angular 2가 찾습니다. Service1ChildComponent 인젝터에, 그 다음에는 AppComponent 인젝터에, 이어서 애플리케이션 인젝터에 있습니다.

마찬가지로 Service1 Service2를 삽입하려고 시도합니다. 동일한 인젝터 조회 프로세스가 발생합니다. 따라서 원하는 공유 범위에 따라 애플리케이션의 다양한 수준에 서비스를 주입할 수 있습니다.

애플리케이션 수준에서 공급자가 정의되면 생성된 인스턴스는 모든 구성 요소와 서비스를 포함하여 애플리케이션 전체에서 공유됩니다. 구성 요소 수준에서 공급자를 정의하면 인스턴스가 구성 요소 자체, 해당 하위 구성 요소 및 종속성 체인과 관련된 서비스로 제한됩니다.

이 계층적 주입 메커니즘은 종속성을 구성하고 관리하는 데 유연성을 제공합니다. 보다 포괄적인 이해를 위해서는 계층적 종속성 주입에 대한 Angular 2 문서를 참조하세요.

위 내용은 Angular 2에서 다른 서비스에 서비스를 주입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.