FormArray
объект создается при создании экземпляра элемента управления с использованием new FormArray([])
или formBuilder.array([])
.
Однако, если вы примените экземпляр FormControl
к классу с помощью методов ControlValueAccessor
, он будетзаписать FormControl
или FormGroup
(если вы хотите работать с предоставленными объектами формы Angular) в значение элемента управления, который вы передали.
Таким образом, в первом случае вы получаете объект FormArray
иво втором случае вы можете получить либо обычные типы JS (объект, массив, строка и т. д.), либо FormGroup
/ FormControl
.
Если вы хотите получить более расширенный ответ, специфичный для вашего случая, пример кода необходим, потому чтоВаша реализация может вызвать преобразование массива в FormArray
в некоторый момент.
Обновление # 1
Если мы изменим valueChanges
с users
на form
, мы увидим, что эта формаявляется неработоспособным, потому что .value
дает нам еще один FormArray
вместо простого массива.
Кроме того, я проверил реализацию иТам нет места, где вы можете получить обычный массив.Тем не менее, пользовательский элемент управления реализован неправильно ИМХО, так как вы должны указать значение .value
вместо FormArray
или что-либо подобное этому.
Поэтому, если вы можете изменить реализацию этого элемента управления, я бы предложил вамсделай это.Я делаю это в порядке
registerOnChange(fn: any): void {
this.tagsArray.valueChanges.subscribe(fn);
}