如何使用模板参考变量在ng-template中访问模板的内容

时间:2018-08-27 23:56:12

标签: angular angular2-template viewchild 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 个答案:

答案 0 :(得分:0)

  

<ng-template>是用于呈现HTML的Angular元素。它是   从不直接显示。实际上,在渲染视图之前,Angular   将<ng-template>及其内容替换为注释。

Source

一旦您在例如以下位置使用模板:

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

您还可以通过Viewchild访问其内容。