Как получить доступ к содержимому шаблона в ng-template, используя переменную ссылки на шаблон

Я хочу знать, возможно ли получить доступ к компоненту шаблона внутри ng-template используя ссылку на шаблон? Я пытался использовать @ViewChild и @ContentChild, но ни один из них не работает. Пример: я хочу получить доступ к содержимому app-common

<ng-template #first>
<app-common #second><app-common>
</ng-template>

@ViewChild('second') second1: ElementRef;
@ContentChild('second') second2: ElementRef;

ngAfterViewInit() {
  console.log(this.second1);
}

ngAfterContentInit() {
  console.log(this.second2);
}

1 ответ

<ng-template> является угловым элементом для рендеринга HTML. Он никогда не отображается напрямую. Фактически, перед рендерингом представление Angular заменяет <ng-template> и его содержание с комментарием.

Источник

Как только вы используете шаблон где-то, например:

<ng-content *ngTemplateOutlet="first"></ng-content>

вы также сможете получить доступ к его содержимому через Viewchild.

Другие вопросы по тегам