Comment faire référence à un élément en utilisant @ ViewChild / @ ContentChild lorsqu'il est transcrit

Je suivez ce livre de recettes sur la façon de créer des composants dynamiquement au moment de l'exécution. Tout fonctionne parfaitement, à condition que l'élément @ViewChild je tente de faire référence en utilisant @ViewChild ne soit pas transcrit (autrement que la projection de contenu en angulaire 2) dans un autre élément.

Permettez-moi de préciser. J'ai ce code:

 @Component({ selector: 'module-landing', templateUrl: './module-landing.template.html', entryComponents: [TravelHeaderContentComponent] }) export class ModuleLandingComponent implements AfterViewInit { @ViewChild(ContentHostDirective) contentHost: ContentHostDirective; ngAfterViewInit() { console.log(this.contentHost); } } 

Mon module-landing.template.html ressemble à ceci:

 <some-other-component></some-other-component> <ng-template content-host></ng-template> 

Jusqu'ici tout va bien. console.log() produit l'objet comme prévu.

Cependant, j'ai besoin de transmettre l'élément content-host dans le même some-other-component , comme ceci:

 <some-other-component> <ng-template content-host></ng-template> </some-other-component> 

Cela tombe. La référence @ViewChild() est maintenant undefined . La modification de @ViewChild() sur @ContentChild() n'a aucun effet.

Comment puis-je faire ceci?