angular - 如何获取嵌套表单组控件
问题描述
我已经创建了如下的反应形式
this.customerForm = this.fb.group({
"name": ["", Validators.required],
"email": "",
"info": this.fb.group({
"name": ["", Validators.required],
})
})
我添加了获取表单控件的 getter 函数,如下所示
get f() { return this.customerForm.controls }
我正在显示如下错误消息
<p *ngIf="f.name.errors?.required">Required</p>
但我无法显示信息错误消息。因为它在嵌套组中,所以我决定创建另一个获取器来获取信息表单控件,如下所示
get fi() { return this.customerForm.controls.info.controls }
但它不起作用,我也找不到它不起作用的原因。任何人都可以帮助解决这个问题吗?提前致谢。
解决方案
formGroup 对象上的 .errors 属性不包含任何内容,并且始终返回 null。在组级别您只能判断它是有效的还是无效的。对于实际错误,您需要进入嵌套控件。
this.customerForm.get('info').valid // would work
this.customerForm.get('info').invalid // would work
this.customerForm.get('info').errors // will return null even if the control are in error
this.customerForm.get('info.name').errors // would work
推荐阅读
- laravel - 在 laravel 的 laravel api 资源中使用分页
- c# - 错误 CS0029 Visual Studio Blazor,如何解决?
- css - 你能在 :local 和 :global 选择器中组合 CSS 类吗?
- django - 无法在 django rest 框架中发送电子邮件
- python - 具有可变移动速度的 2D 寻路?
- react-native - 无法获取新闻数据
- android - 如何将新地图或行添加到 sharedpreferences 文件
- python - 如何在python中将元组转换为字符串并将其用于strptime?
- openapi - 4xx 响应类型不返回内容
- php - simpleSAMLphp 和 Azure 给我“AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配”