角反应形式本身形成阵列

时间:2018-02-20 17:42:20

标签: angular

我对angular的表单组和表单数组有点困惑。我知道你可以在表单组中嵌套表单数组,但表单数组本身是否存在?基本上我需要整个表单是一个数组,我可以将“基本”控件推送到OR,根据下拉列表中的选择在某些位置插入控件。例如

  1. 姓名(文字字段)
  2. 电话(文字字段)
  3. 付款时间表(每周,每月,每年的下拉值)
  4. 地址(文本字段)
  5. 如果从付款计划下拉列表中选择每周,我需要在付款和地址字段之间显示一个新输入,我们称之为“星期几”。

    这是我努力奋斗的部分。我基本上已经构建了这个(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);
    

1 个答案:

答案 0 :(得分:1)

我认为您以不正确的方式接近了这一点。你不需要使用任何表格阵列,它使生活变得比它需要的复杂得多。只需使用表单将使用的所有字段创建一个表单。然后在需要修改其他控件有效性的控件上放置onchange方法。