在角度7中从控制器访问ng-template内的ngForm

时间:2019-02-12 08:49:48

标签: angular

我在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
}

1 个答案:

答案 0 :(得分:0)

您需要使用ng-template将自引用传递给ngTemplateOutlet,以便激活模板并呈现其中的内容。

html

<ng-template #template [ngTemplateOutlet]="template">
   <form #formAccessor="ngForm" (ngSubmit)="submit(formAccessor)">
   </form>
</ng-template>

查看此demo