【发布时间】:2020-10-20 03:59:02
【问题描述】:
我正在使用 Angular 构建递归响应式表单。 STACKBLITZ HERE
该表单按预期工作得很好。但是,由于我正在递归/动态地构建它,用户可以无限地构建和嵌套 FormArrays 和 FormGroups,所以我使用子组件。到目前为止,主要有 3 个组件:
- AppComponent:主要的父组件
- GroupControlComponent:父级的子级。处理所有组对象
- ConditionFormComponent:GroupControlComponent 的子组件。照顾组内的所有条件
这是一个基本对象的样子:
{
// appcomponent level
"statement": {
//groupcontrol level
"groups": [
{
// conditionform level
"conjunctor": null,
"conditions": [
{
"variable": null
}
],
"groups": []
}
]
}
}
当我设置验证时,我希望一切都是必需的。所以我通过 FormBuilder,在父组件和子组件上,并在所有表单控件上将 Validators.required 设置为 true。
经过之后,我返回并使用这种方法构建了一个表单,并且表单始终返回 true,即使它不是。有没有办法确定子组件在动态创建的带有子组件的表单上是否有效?
如果您想了解更多关于这个特定场景的信息,这里有一些其他 StackOverflow 问题,这些问题涉及构建和让表单以递归方式工作:
Cannot Find Control with Path Using ngIf on Recursive Angular Form
Angular Deeply Nested Reactive Form: Cannot find control with path on nested FormArray
【问题讨论】:
标签: angular angular-forms