在下面的代码this.fb
中是FormBuilder
个实例
return this.fb.group({
name: ['', [<any>Validators.required]],
phone: ['', [<any>Validators.required]],
email: ['', [<any>Validators.required, Validators.email]],
website: ['', [<any>Validators.pattern(web_pattern)]]
tax_code: ['', [<any>Validators.required,Validators.maxLength(50)]],
owner: this.fb.group({
first_name: ['', [<any>Validators.required, Validators.maxLength(30)]],
last_name: ['', [<any>Validators.required, Validators.maxLength(30)]],
phone: ['', [<any>Validators.required]],
email: ['', [<any>Validators.required, Validators.email]],
password: ['', [<any>Validators.required]],
})
});
使用ng build --prod
构建此代码时,它无法说明:属性&#39;控件&#39;类型&#39; AbstractControl&#39; 上不存在。
它存在owner
密钥问题,这是FormGroup
实例,而不是FormControl
。但是根据角度文档,有效的是在FormGroup
中添加FormGroup
。
此代码在没有--prod
的情况下构建完美。
我知道--prod
会导致严格的类型检查。我无法理解如何纠正这一点。
答案 0 :(得分:1)
在Form Control中的某些地方你必须使用像这样的东西
form.get('qualifications').controls
或form.controls.qualifications.controls.degree
或
form.controls.qualifications['controls'].degree
这不是aot
友好的。
你需要将它放在组件内而不是模板这样的东西。
<强>模板强>
<div class="col-md-12" *ngFor = "let address of getAddresses(user) ; let i = index">
<强>组件强>
getAddresses(form){
return form.get('addresses').controls;
}