Для привязки динамически созданного input к FormGroup в Angular нужно выполнить следующие шаги:
1. Импортировать необходимые модули:
import { Component, OnInit } from '@angular/core'; import { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';
2. Создать FormGroup и FormBuilder в конструкторе компонента:
constructor(private formBuilder: FormBuilder) { }
3. Создать метод, который будет добавлять динамически созданный input в FormGroup:
addDynamicInput() { const formControl = new FormControl('', Validators.required); this.myForm.addControl('dynamicInput', formControl); }
4. Вызвать этот метод при инициализации компонента или в другом соответствующем месте в коде:
ngOnInit() { this.myForm = this.formBuilder.group({ staticInput: ['', Validators.required] }); this.addDynamicInput(); }
5. В шаблоне компонента добавить форму и все необходимые элементы:
<form [formGroup]="myForm"> <input type="text" formControlName="staticInput"> <input type="text" formControlName="dynamicInput"> </form>
Теперь динамически созданный input будет привязан к FormGroup и будет доступен для валидации и получения данных из FormGroup. Обратите внимание, что в приведенном примере валидатор реализован для обоих input элементов, но вы можете выбрать другие валидаторы по вашему усмотрению. Также вы можете динамически добавлять и удалять элементы из FormGroup при необходимости.