Я использую Angular 6
.и Reactive form builder
для создания формы.
ngOnInit() {
this.landingPageForm = this.formBuilder.group({
title: new FormControl('', [
Validators.required
]),
description: new FormControl('', [
Validators.required
]),
faqs: this.formBuilder.array([
this.createFaqFields()
]),
});
this._setFormValue();
}
createFaqFields(): FormGroup {
return this.formBuilder.group({
question: new FormControl(),
answer: new FormControl()
});
}
private _setFormValue() {
if (this.product) {
this.landingPageForm.setValue({
title: this.product.info.title,
description: '',
faqs: [],
});
}
}
Я должен предварительно заполнить несколько полей, а faqs
- это поле массива, в котором новые поля генерируются динамически, вызывая
onClickAddFaqField(): void {
this.faqFields = this.landingPageForm.get('faqs') as FormArray;
this.faqFields.push(this.createFaqFields());
}
Изначально в HTML есть только одно поле ввода faq, и оно пустое.Но выдает ошибку
"Must supply a value for form control at index: 0.
Как я могу инициализировать поле ввода массива пустым?