动态生成角度FormControl的控件

时间:2018-12-07 11:47:09

标签: angular forms typescript

我有以下问题: 我想使用Angulars FormControl生成一个动态Form。我想遍历myForm数组(保留我需要的所有输入字段),我想添加到this._controls中。我有什么方法可以做到这一点?在我的代码中,每个循环都覆盖this._controls。感谢您的帮助!

private initForm() {
    for (const dat of this.formBuilderService.myForm) {
      if (dat.required) {
        this._controls = ({[dat.bezeichnung]: new FormControl(null, 
           Validators.required)});
      } else {
        this._controls = {[dat.bezeichnung]: new FormControl(null, null)};
      }
    }
    this.form = new VhvFormGroup<FormBuilderModel>(this._controls);
  }

1 个答案:

答案 0 :(得分:0)

使用单独的键添加每个控件,使用formControl名称作为键,例如,您可以在name中拥有dat属性

private initForm() {
    for (const dat of this.formBuilderService.myForm) {
      if (dat.required) {
        this._controls[dat.name] = ({[dat.bezeichnung]: new FormControl(null, 
           Validators.required)});
      } else {
        this._controls[dat.name] = {[dat.bezeichnung]: new FormControl(null, null)};
      }
    }
    this.form = new VhvFormGroup<FormBuilderModel>(this._controls);
  }