Tôi có hình thức phản ứng như vậy:góc 4: setValue formBuilder trống mảng
constructor(...){
this.form = this.formBuilder.group({
name: ['', Validators.compose([Validators.required, Validators.maxLength(50)])],
memes: this.formBuilder.array([
this.initMemes('TrollFace')
])
});
}
initMemes (name?) {
return this.formBuilder.group({
id: [''], name: [name]
});
}
sau tôi có thể thêm một số chi tiết memes
:
addMemes() {
const control = <FormArray>this.form.controls['memes'];
control.push(this.initMemes('anyName'));
}
và sau đó nếu tôi nhận được giá trị hình thức tôi nhận được:
this.form.controls['memes'].value
- ở đây tôi có mảng
Nhưng có một trường hợp, khi tôi cần số này this.form.controls['memes'].value
để đặt thành một mảng trống, bạn có thể làm như thế nào?
Nếu tôi đặt nó theo cách này:
this.form.controls['memes'].setValue([])
tôi đã nhận lỗi: Must supply a value for form control at index: 0.
những gì tôi làm sai?
tôi nghĩ rằng nó phải được control.controls.removeAt (i). Vì console.log (control) có một mảng với các điều khiển tên, nếu không bạn sẽ gặp lỗi "Không thể đọc thuộc tính 'được bật" của null ". – Jassi