我对angular的表单组和表单数组有点困惑。我知道你可以在表单组中嵌套表单数组,但表单数组本身是否存在?基本上我需要整个表单是一个数组,我可以将“基本”控件推送到OR,根据下拉列表中的选择在某些位置插入控件。例如
如果从付款计划下拉列表中选择每周,我需要在付款和地址字段之间显示一个新输入,我们称之为“星期几”。
这是我努力奋斗的部分。我基本上已经构建了这个(https://scotch.io/tutorials/how-to-build-nested-model-driven-forms-in-angular-2)tutorial,但如果整个表单不是表单数组,我无法解决如何在彼此之间添加字段的问题,我似乎无法做到。
question-control.service.ts(来自angular docs。见:https://angular.io/guide/dynamic-form)
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);
答案 0 :(得分:1)
我认为您以不正确的方式接近了这一点。你不需要使用任何表格阵列,它使生活变得比它需要的复杂得多。只需使用表单将使用的所有字段创建一个表单。然后在需要修改其他控件有效性的控件上放置onchange方法。