angular - 如何使用添加控件向表单组添加值
问题描述
我们如何将控件添加到表单组?我尝试了下面的 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'));
但似乎不起作用,有什么想法吗?谢谢你。
解决方案
您正在错误地初始化表单。如果您打开浏览器控制台,您会看到错误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),
});