в моей форме, несколько текстовых полей входного поля генерируются динамически, используя FormArray, который имеет одинаковое formControlName для всех полей, но имеет уникальные идентификаторы.Таким образом, мы генерируем динамические поля ввода
monthList: any[];
// process to create day forms controls.
initMonthControls(): void {
// prepare array for which controls need to be created.
const monthLabels = [
{ rateTypeId: Types.WholeMonth, text: 'Whole month', rate: '' },
{ rateTypeId: Types.HalfMonth, text: 'Half month', rate: '' },
];
this.monthList = monthLabels;
// create input controls for each item.
const manageFormArray = <FormArray>this.manageForm.controls['month'];
manageFormArray.controls.length = 0;
for (let i = 0, length = items.length; i < length; i++) {
manageFormArray.push(this.formBuilder.group({
rateTypeId: [(items[i].rateTypeId)],
rate: [items[i].rate, Validators.pattern(ValidationPatterns.money)],
}));
}
}
, и мне нужно создать сводку проверки в верхней части страницы на основе допустимых входных данных.Когда у меня есть уникальное имя formcontrolname, я могу правильно показать сводку проверки следующим образом:
в manage.constants.ts, у меня есть:
manageDetails: [
{
id: 'rate1',
name: 'January',
label: 'January Month',
},
{
id: 'rate2',
name: 'February',
label: 'February Month',
},
],
// find the errors from each controls from form group.
generateErrorMessages(formGroup: FormGroup): void {
Object.keys(formGroup.controls).forEach((controlName) => {
const control = formGroup.controls[controlName];
if (control instanceof FormGroup) {
// recursive function to find form group.
this.generateErrorMessages(control);
}
this.errorMessages(control, controlName);
});
}
and to push error messages we have
errorMessages() {
// get the control details
const item = this.formControlList.filter((x) => x.name === controlName)[0];
if (errors.required) {
this.errors.push(this.generateErrors(item.id, item.label + ' ' + ’is required’);
}
}
, так как я фильтрую на основе formcontrolname,Я сталкиваюсь с проблемой, когда у меня нет уникального formcontrolname в динамически генерируемых полях. Подскажите, пожалуйста, какое-нибудь решение, чтобы я мог показать сводку проверки, если у меня нет уникального formControlNames