잘 모르겠는데 따라서 어떤 require
이 정확히 사용되는지 또는 어떤 용도로 사용되는지 알 수 없습니다.
- 는 일반적으로 당신이 서비스는 당 싱글 톤
<child [childInput]="parentValue" (childOutput)="doSomethingInParent()">
부모 템플릿을 와이어 바인딩 템플릿을 사용 : 귀하의 질문에 언급 된 총알
공급자. 동일한 공급자가 항상 동일한 인스턴스를 반환하지만 동일한 서비스를 여러 번 제공 할 수 있으며 더 이상 실제 싱글 톤이 아닙니다. 따라서 서비스를 제공하는 곳은 싱글 톤으로 처리되는 범위를 정의합니다. 구성 요소에 제공하면이 구성 요소 인스턴스와 모든 하위 구성 요소는 동일한 인스턴스를 갖게됩니다 (하위 구성 요소가 동일한 유형을 제공하지 않는 한).
이 DI 동작은 질문에서 언급 한 것과 같은 충돌을 방지합니다.
- 템플릿 변수는 오히려의 생성자에 주입하는 형제 자매
<child1 [child1Input]="child2.child2Prop"
(child1Output)="child2doSomethingInChild2()">
<child2 #child2></child2>
- 상위 구성 요소의 유형을 알고 있다면, 당신이 그것을 필요로 할 수 있습니다 참조하는 데 사용됩니다 하위 구성 요소
constructor(@Host() private parent:ParentComponent) {}
이것은 특히 부모와 같은 재귀 구성 요소 (예 : 트리)에서 유용 할 수 있습니다.이 경우 추가 데코레이터
도 Inject parent component of the same type as child component
Wauw는, 생성자에 관한 마지막 정확히 내가 필요로 무엇을 참조하십시오! 매우 좋았습니다 ;-) 이것이 가능하다는 것을 몰랐습니다 ;-) – Xabre
듣기 좋게 :) –