我在ng-template内部有一个。我想通过我的控制器访问它,但我一直未定义。我已经测试了相同的代码,如果我不使用ng-template,则可以使用@ViewChild访问它。我不想在Submit事件中访问它,我需要在 ngAfterViewInit 中进行访问。 预先感谢。
<ng-template #template>
<form #formAccessor="ngForm" (ngSubmit)="submit(formAccessor)">
</form>
</ng-template>
在我的控制器内部
@ViewChild('formAccessor') ngForm:NgForm;
ngAfterViewInit(): void {
console.log(this.ngForm); //Prints undefined
}
答案 0 :(得分:0)
您需要使用ng-template
将自引用传递给ngTemplateOutlet
,以便激活模板并呈现其中的内容。
html
<ng-template #template [ngTemplateOutlet]="template">
<form #formAccessor="ngForm" (ngSubmit)="submit(formAccessor)">
</form>
</ng-template>
查看此demo