Постановка задачи:
В приведенной ниже демонстрации stackblitz я могу динамически вставить FormGroup
в начале сетки, нажав кнопку Add
и вызвав (blur)
событие от одного элемента управления, чтобы обновить значение другого элемента управления, совместно использующего тот же rowIndex
.Теперь проблема в том, что если я вставил несколько formGroups
и включил событие (blur)
на любом из вновь добавленных FormGroups
, он обновляет значение других элементов управления, а также имеет другие rowIndex
.
Stackblitz Demo: https://stackblitz.com/edit/angular-oitz5j-4uezqr
Действия по воспроизведению проблемы:
- Откройте демонстрационную ссылку ниже.
- Добавитьнесколько строк (2 строки), нажав на кнопку Добавить.
- Введите значение в поле имени 2-й вновь добавленной строки и сфокусируйтесь.
- Обновляет поле возраста в обоих новыхдобавлена строка, а не только во второй.
Требование:
Вкладка в любое поле имени определенной строки, поле Возраст в той же строке должно отображатьслучайное число без влияния на другие строки.
Что я пробовал до сих пор?
Пытался использовать массив unshift () метод, но с ошибкой
Свойство 'unshift' не существует для типа 'FormArray'
Пытался использовать FormArray.insert () метод. Он будет работать, если мы хотим добавить FormGroup
по определенному индексу.Но он не может вставить несколько FormGroups
поверх FormArray
динамически.
Обновление: Выше проблема работает нормально без Kendo Grid.Пожалуйста, проверьте демо ниже.
Демо: https://stackblitz.com/edit/angular-oitz5j-2a31gs
Связанные проблемы в github / stackoverflow:
https://github.com/angular/angular/issues/16322
Angular - указатель формы массива, специфичный для индекса
Примечание: Если мы собираемся добавить элементы управления в концеСетка, она работает как чемпион.Пожалуйста, проверьте приведенную ниже демонстрацию, которая прекрасно работает с добавлением элементов управления в последнюю очередь.
Демо: https://stackblitz.com/edit/angular-oitz5j-aszrjq