Как получить доступ к содержимому шаблона в 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.