Angular 2(베타)에서 다른 서비스에 서비스 삽입
@Component 데코레이터를 사용하면 구성 요소에 서비스를 삽입하는 것이 간단합니다. 그러나 구성 요소 외부에 서비스를 삽입하는 것은 문제가 됩니다.
문제 설명
Angular 2에서는 다음에서 볼 수 있듯이 다른 서비스 내에서 서비스를 수동으로 인스턴스화하는 것을 피하고 싶습니다. 다음 코드 snippet:
export class MyFirstSvc { } export class MySecondSvc { constructor() { this.helpfulService = new MyFirstSvc(); } } export class MyThirdSvc { constructor() { this.helpfulService = new MyFirstSvc(); } }
해결책
해결책은 주입하려는 서비스에 @Injectable 데코레이터를 사용하는 것입니다. 이 데코레이터는 종속성 주입을 위해 서비스의 생성자 매개변수를 준비합니다.
인젝터 계층
주입이 어떻게 작동하는지 이해하려면 인젝터 계층의 개념을 이해하는 것이 중요합니다.
서비스를 구성 요소나 다른 서비스에 주입할 때 Angular2는 다음 순서로 공급자를 검색합니다.
공급자 공유
인젝터 계층 구조를 통해 서비스 인스턴스의 공유를 제어할 수 있습니다.
예
@Injectable() export class Service1 { constructor(service2:Service2) { this.service2 = service2; } getData() { return this.service2.getData(); } }
@Injectable() export class Service2 { getData() { return [{ message: 'message1' }, { message: 'message2' }]; } }
이에 예:
리소스
위 내용은 Angular 2의 다른 서비스에 서비스를 어떻게 주입할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!