Iterate Angular 2+ FormArray

У меня есть FormArray, и мне нужно перебирать каждого его члена.

Я вижу, что в документах есть метод get, но я не вижу, где взять ключи или даже длину.

Как мне перебрать FormArray?

Ответы

Ответ 1

У вас есть controls свойством в FormArray который является массивом объектов AbstractControl. Проверьте специальную документацию для FormArray, и вы увидите, что они также наследуются от AbstractControl как FormControl вы опубликовали.

Имейте в виду, что в массиве элементов управления вы можете снова иметь внутри FormArray или FormGroup помимо объектов FormControl потому что могут быть вложенные группы или массивы.

Вот простой пример:

for (let control of formArray.controls) {
   if (control instanceof FormControl) {
      // is a FormControl
   }
   if (control instanceof FormGroup) {
      // is a FormGroup  
   }
   if (control instanceof FormArray) {
      // is a FormArray
   }
}