this.formGroup = this.formBuilder.group({
images: this.fb.array([])
});
我以这种方式添加新元素:this.images.push(new FormControl(new ImageCreateForm(this.imageResponse.id)));
get images(): FormArray {
return <FormArray>this.formGroup.controls.images;
}
我的课程:
export class ImageCreateForm {
id: number;
constructor(id: number) {
this.id = id;
}
}
export class ImageResponse {
id: number;
url: string;
}
当我添加图像时,我的{{ formGroup.value | json }}
是:
"images": [
{
"id": 501
},
{
"id": 502
},
{
"id": 503
}
]
我想删除图像(例如只有图像与id=502
)从formGroup
之前,当我发送我的表单POST请求。这是可能的吗?我尝试使用reset
方法,但这删除所有元素:this.images.reset({"id":image.id});
。其中image
是ImageResponse
对象。
结果:{"images": [ null, null, null ]}
,但我想要:
"images": [
{
"id": 501
},
{
"id": 503
}
]
3条答案
按热度按时间l5tcr1uw1#
FormArray
类有removeAt
,它接受索引。如果你不知道索引,你可以做一个变通:ee7vknir2#
在Angular Reactive Forms中,
formArray
有一个名为removeAt()
的方法。你可以通过传递一个你想要删除的索引来使用它:lbsnaicq3#
如果你想从FormGroup中删除一个特定Key的值,你可以使用下面的代码-