#angular #forms
#угловой #формы
Вопрос:
У меня есть FormArray
то, что держится FormGroups
. Ниже приведена необходимая часть кода
public formGroups: FormGroup = new FormGroup({ items: new FormArray([]) }); public createFormGroup = (dataItem) =gt; new FormGroup({ atrributeId: new FormControl(dataItem.atrributeId), objectType: new FormControl(dataItem.objectType, Validators.required), attributeDisplayName: new FormControl(dataItem.attributeDisplayName, Validators.required), dataType: new FormControl(dataItem.dataType, Validators.required), inputValues: new FormControl(dataItem.inputValues, [Validators.required, InputValuesValidator]), isGridEligible: new FormControl(dataItem.isGridEligible, Validators.required), isInvoiceEligible: new FormControl(dataItem.isInvoiceEligible, Validators.required), }); public editRows(grid) { this.formGroups.markAllAsTouched(); this.isEdited = true; this.isDeleted = false; let currentRow = 0; let rows: any = grid.data.data; for (let i = 0; i lt; rows.length; i ) { const formGroup = this.createFormGroup(rows[i]); this.formGroup = formGroup; (this.formGroups.get('items') as FormArray).push(formGroup); grid.editRow(currentRow, formGroup, {skipFocus: true}); currentRow ; formGroup.valueChanges.subscribe(val =gt; { console.log(val); }); } }
Как я могу нажимать только на группы форм, которые изменяют свои начальные значения? Прямо сейчас, когда я вижу консоль, она вызывается все время, когда я изменяю какое-либо значение в строке редактирования, т. Е. formgroup. Мне нужно сформировать массив только с отредактированными строками. Пожалуйста, предложите. Спасибо.
Комментарии:
1. Ваш код выглядит странно. Почему вы создаете группы форм внутри метода editRow () -? Разве они у тебя уже не есть? Какова основная цель вашего кода? Пожалуйста, будьте более точны.
2. поскольку я включаю редактирование строк сетки, всякий раз, когда я нажимаю на метод editRows, группы форм будут создаваться для каждой строки с данными, которые она содержит.