Angular 如何将窗体控件添加到特定控件
如何将新表单控件或表单组添加到特定表单控件Angular 如何将窗体控件添加到特定控件,angular,forms,Angular,Forms,如何将新表单控件或表单组添加到特定表单控件 public SaleRequestForm: FormGroup = new FormGroup({ SaleToPOIRequest: new FormGroup({ MessageHeader: new FormGroup({ MessageType: new FormControl(''), MessageClass: new FormControl(''),
public SaleRequestForm: FormGroup = new FormGroup({
SaleToPOIRequest: new FormGroup({
MessageHeader: new FormGroup({
MessageType: new FormControl(''),
MessageClass: new FormControl(''),
MessageCategory: new FormControl(''),
SaleID: new FormControl(''),
POIID: new FormControl(''),
ProtocolVersion: new FormControl(''),
ServiceID: new FormControl(''),
})
})
我想象它会像这样
this.SaleRequestForm.controls.MessageHeader.addControl('test', new FormControl());
我一直在用谷歌搜索,但我似乎找不到答案你的想法是对的,但如果你用FormGroup投射对象,就会出现角度,如下所示:
(this.SaleRequestForm.get(“saletoPaireRequest.MessageHeader”)作为FormGroup)。addControl(“test”,new FormControl())
我会一步一步地做:
const saleToPOIRequest: FormGroup = this.SaleRequestForm?.get("SaleToPOIRequest") as FormGroup;
const messageHeader: FormGroup = saleToPOIRequest?.get("MessageHeader") as FormGroup;
if (messageHeader) {
const myNewFormControl = new FormControl(null);
messageHeader.addControl("foo", myNewFormControl);
}
像这样的
this.SaleRequestForm.get(“SaleToPaireQuest”).get(“MessageHeader”).addControl(新表单控件('foo',null))
。另外,请在命名变量时使用camelCase,而不是PascalCase…@Random它可以工作,但我正在寻找一种更简单的方法。通过这种方式,我必须沿着树向下走,我只想针对这样一个表单控件:This.SaleRequestForm.controls.MessageHeader。这只是给我一个错误:无法读取undefined``的属性“addControl”。:/您需要将变量的名称更改为您的大小写:(This.objFormGroup.controls.MessageHeader作为FormGroup)。addControl(“测试”,new FormControl())我将更改上面的答案,以供您理解。我确实更改了答案,请不要担心:D.它给了我错误。此外,如果您希望它精确,您需要将其更改为this.saleRequestForm.controls,但我不在乎它是哪种方式。抱歉,现在我发现错误,我将再次更改并发送到这里xD