我找不到有关模板驱动的表单控件初始化的任何信息。我注意到,在任何生命周期挂钩上,甚至AfterViewInit
上,控件仍未定义。
为了测试它,我准备了一些最小的示例:
模板
<form ngForm #testForm="ngForm">
<input name="test1" [(ngModel)]="test1Value"/>
</form>
组件
export class AppComponent implements AfterViewInit {
@ViewChild('testForm')
testForm: NgForm;
test1Value: string = '';
ngAfterViewInit() {
console.log(this.testForm.controls);
}
}
在Chrome调试器上,我检查了testForm
内部的ngAfterViewInit
-表单已初始化,但是controls
是一个空对象。
但是,在不使用调试器的情况下,写入控制台的对象似乎具有所有控件-这表明该对象稍后将在console.log
调用和console.log
执行之间初始化。