如何使用在 angular 9 中包含数据数组的数据创建表单组?
How to create formgroup with a data that has an array of data in angular 9?
如何使用具有数据数组的数据创建表单组。
还有如何保存绑定到该数据?
数据格式
{
id: 0,
tenantId: 0,
qty: 0,
dateInvoiced: '',
status: '',
services:
{
service1: false,
service2: false,
service3: false,
otherServices: '',
}
}
如何使用服务数组创建表单组?
var group: FormGroup = new FormGroup({
id: new FormControl(''),
tenantId: new FormControl(''),
qty: new FormControl(''),
dateInvoiced: new FormControl(''),
status: new FormControl(''),
services: new FormControl(''), //how to do services array here?
});
this.dynamicFormGroup = group
如何将服务保存在数据置顶?谢谢
<mat-slide-toggle formControlName="services.service1">Service 1</mat-slide-toggle>
<mat-slide-toggle formControlName="services.service2">Service 2</mat-slide-toggle>
<mat-slide-toggle formControlName="services.service3">Service 3</mat-slide-toggle>
你没有数组,你需要创建一个 FormGroup,
var group: FormGroup = new FormGroup({
...
services: new FormGroup({
service1:new FormControl(),
service2:new FormControl(),
service3:new FormControl(),
otherServices:new FormControl()
})
});
如果你想创建一个 formArray 使用
services: new FormArray([
new FormControl(),
new FormControl(),
new FormControl(),
new FormControl()
})
在嵌套的 FromGroup 中只需使用
<form [formGroup]="dynamicFormGroup">
<input formControlName="id">
....
<div formGroupName="services">
<input formControlName='service1'>
...
</div>
</form>
在 FormArray 中,我们需要考虑它是 FormControls 的 FormArray
<form [formGroup]="dynamicFormGroup">
<input formControlName="id">
....
<div formArrayName=="services">
<div *ngFor="let control of dynamicFormGroup.get('services').controls;let i=index">
<input [formControlName]="i">
</div>
</div>
</form>
如何使用具有数据数组的数据创建表单组。 还有如何保存绑定到该数据?
数据格式
{
id: 0,
tenantId: 0,
qty: 0,
dateInvoiced: '',
status: '',
services:
{
service1: false,
service2: false,
service3: false,
otherServices: '',
}
}
如何使用服务数组创建表单组?
var group: FormGroup = new FormGroup({
id: new FormControl(''),
tenantId: new FormControl(''),
qty: new FormControl(''),
dateInvoiced: new FormControl(''),
status: new FormControl(''),
services: new FormControl(''), //how to do services array here?
});
this.dynamicFormGroup = group
如何将服务保存在数据置顶?谢谢
<mat-slide-toggle formControlName="services.service1">Service 1</mat-slide-toggle>
<mat-slide-toggle formControlName="services.service2">Service 2</mat-slide-toggle>
<mat-slide-toggle formControlName="services.service3">Service 3</mat-slide-toggle>
你没有数组,你需要创建一个 FormGroup,
var group: FormGroup = new FormGroup({
...
services: new FormGroup({
service1:new FormControl(),
service2:new FormControl(),
service3:new FormControl(),
otherServices:new FormControl()
})
});
如果你想创建一个 formArray 使用
services: new FormArray([
new FormControl(),
new FormControl(),
new FormControl(),
new FormControl()
})
在嵌套的 FromGroup 中只需使用
<form [formGroup]="dynamicFormGroup">
<input formControlName="id">
....
<div formGroupName="services">
<input formControlName='service1'>
...
</div>
</form>
在 FormArray 中,我们需要考虑它是 FormControls 的 FormArray
<form [formGroup]="dynamicFormGroup">
<input formControlName="id">
....
<div formArrayName=="services">
<div *ngFor="let control of dynamicFormGroup.get('services').controls;let i=index">
<input [formControlName]="i">
</div>
</div>
</form>