angular - Angular:FormArray 中的 FormControl 未触发验证功能
问题描述
想象一下FormGroup
Angular中的以下内容:
this.form = new FormGroup({
name: new FormControl(''),
age: new FormControl(),
hobbies: new FormArray([])
}, {
validators: [this.validateForm.bind(this)]
});
我后来在FormArray
使用中添加了爱好:
this.form.controls.hobbies.controls.push(new FormControl(/* hobby */));
当我更改name
和age
控件中的值时,该validateForm
功能触发良好。但是,当我单击其中任何一个时hobbies
,都不会调用上述验证方法。
解决方案
我认为因为您需要使用 formGroup 来填充 formArray,例如:
form = new FormGroup({
name: new FormControl(''),
skills: new FormArray([
new FormGroup({
name: new FormControl(''),
level: new FormControl('')
})
])
});
你可以在这里找到一些很好的解释:
https://netbasal.com/angular-reactive-forms-the-ultimate-guide-to-formarray-3adbe6b0b61a
推荐阅读
- microsoft-graph-api - 图/站点端点的 HTTP 400 - 使用资源进行身份验证时出错
- ruby - 在 Time.new.to_date.to_time 上可能会发生 nil 取消引用
- css - 垂直滚动捕捉实现不起作用
- r - 如何根据索引向量检查和添加数据框中的缺失行?
- excel - 如何在 Azure 逻辑应用中解析 Excel 电子表格
- python - 如何修复递归列表中的单独输出
- docusignapi - 无法选择要用于提升集成密钥的生产帐户 ID?
- angular - 使用 auth0 lock 登录后如何将用户重定向到他们想要的 url
- scala - 为什么它不能识别 asScala 方法?
- prolog - 如何在不使用列表的情况下对谓词值求和?