首页 > 解决方案 > 如何使用添加控件向表单组添加值

问题描述

我们如何将控件添加到表单组?我尝试了下面的 ff 但它没有添加。任何想法?谢谢。

modelForm: FormGroup;

//this happens on ngOnit
this.modelForm = this._createModelForm();

private _createModelForm(): FormGroup {
    return this.formBuilder.group({
      id: [this.model.id || 0],
      summary: this.model.summary,
      dealType: this.model.dealType,
      dealTypeValues: this.model.dealTypeValues,
    });

  }

例如我想添加

this.modelForm.addControl('dealType',new FormControl('Partner Location Submission'));

但似乎不起作用,有什么想法吗?谢谢你。

标签: angulartypescript

解决方案


您正在错误地初始化表单。如果您打开浏览器控制台,您会看到错误Error: this.validator is not a function。您应该使用初始化字段FormControl

return this.formBuilder.group({
  id: new FormControl([this.model.id || 0]),
  summary: new FormControl(this.model.summary),
  dealType: new FormControl(this.model.dealType),
  dealTypeValues: new FormControl(this.model.dealTypeValues),
});

可选:我建议使用 FormGroup 函数而不是 formBuilder 来启动表单,因为代码将是 treeshakable(更小的包大小)。

 return new FormGorup({
  id: new FormControl([this.model.id || 0]),
  summary: new FormControl(this.model.summary),
  dealType: new FormControl(this.model.dealType),
  dealTypeValues: new FormControl(this.model.dealTypeValues),
});

推荐阅读