我正在尝试将formGroup添加到我的整体表单中,条件是在我的情况下特定字段属于某种类型。我添加此formGroup的功能如下所示:
initSocial() {
const group = <FormGroup>this.cardForm;
group.addControl(
'social': this._fb.group({
'fb': new FormControl(this.currentCard.social.fb),
'yt': new FormControl(this.currentCard.social.yt),
'ig': new FormControl(this.currentCard.social.ig),
'tw': new FormControl(this.currentCard.social.tw),
})
)
}
现在我在'社交'之后得到一个打字稿错误,说','是预期的。我无法测试这个以查看addControl()是否可以工作。
我的触发initSocial的函数在ngOnInit中,如下所示:
if(this.currentCard.cardType === "brand"){
this.initSocial();
}
非常感谢任何帮助/提示/建议。
答案 0 :(得分:3)
addControl()
功能如下:
/**
* Add a control to this group.
* @param {?} name
* @param {?} control
* @return {?}
*/
FormGroup.prototype.addControl = function (name, control) {
this.registerControl(name, control);
this.updateValueAndValidity();
this._onCollectionChange();
};
并且需要2个参数: name 和 control ,用逗号分隔。 因此,只需尝试在社交&#39;之后替换分号(:)。用逗号(,):
group.addControl('social', this._fb.group({
fb: this.currentCard.social.fb,
yt: this.currentCard.social.yt,
ig: this.currentCard.social.ig,
tw: this.currentCard.social.tw,
}))
另外,您不需要new FormControl(DEFAULT_VALUE)
,表单构建器已经