我有以下表格:
registerLibrarianForm = this.formBuilder.group({
firstName: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(128), Validators.pattern(this.nameRegex)]],
lastName: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(128), Validators.pattern(this.nameRegex)]],
address: this.formBuilder.group({
country: ['', [Validators.required]],
city: ['', [Validators.required]]})})
我获取主窗体(registerForm)的控件是通过创建一个简单的返回方法来实现的:
get controls(){
return this.registerForm.controls;
}
我获取嵌套表单(地址)的控件的方法是创建另一个方法:
get addressControls(){
return ((this.registerForm.get('address') as FormGroup).controls)
}
因此,如果您需要在主表单的HTML中执行*ngIf,请使用第一种方法。
*ngIf="controls.firstName.errors && ...
关于嵌套表单:
*ngIf="addressControls.country.errors && ...
我希望这可能会有所帮助!
this.myForm['controls'].child['controls'].id.valid
来代替。 - Narmthis.form.controls.child
的类型转换为 FormGroup。 - soulxy