Angular 角反应形式本身形成阵列
我对angular的表单组和表单数组有点困惑。我知道您可以在表单组中嵌套表单数组,但是表单数组是否可以独立存在?基本上,我需要整个表单成为一个数组,我可以将“基本”控件推到其中,或者根据下拉列表中的选择在某些位置插入控件。比如说Angular 角反应形式本身形成阵列,angular,Angular,我对angular的表单组和表单数组有点困惑。我知道您可以在表单组中嵌套表单数组,但是表单数组是否可以独立存在?基本上,我需要整个表单成为一个数组,我可以将“基本”控件推到其中,或者根据下拉列表中的选择在某些位置插入控件。比如说 名称(文本字段) 电话(文本字段) 付款计划(带周、月、年值的下拉列表) 地址(文本字段) 如果从payment schedule(付款计划)下拉列表中选择weekly(每周),我需要在payment(付款)和address(地址)字段之间显示一个新的输入,比如它被称为
我认为您的做法是错误的。您不需要使用任何表单数组,这会使生活变得比需要的复杂得多。只需创建一个包含表单将使用的所有字段的表单。然后在需要修改其他控件有效性的控件上设置更改方法。那么您尝试了什么,又做了什么您正在处理的一段代码?:)只需将整个表单设置为表单组。但您所描述的是,您可以使用表单组对表单的各个部分进行分割,并根据其他表单输入显示或隐藏。@Anthony,您不必使用formArray。您可以创建一个包含所有必需字段的formGroup。然后根据其他字段的值隐藏或不隐藏字段(例如使用*ngIf)。但是,如果一个按要求设置的字段被隐藏,那么您不需要一个formarray,因为可能会出现验证问题。请参阅我添加到问题中的代码。解决方案是不需要它们,而只在当前显示该部分时按需要设置它们吗@埃利塞
questions.forEach(question => {
group[question.key] = question.required ?
new FormControl(question.value || '', [Validators.required, Validators.minLength(question.minLength)]) :
new FormControl(question.value || '');
});
return new FormGroup(group);