I've built a custom input component with ControlValueAccessor and it works great to add tags as selections. (Stackblitz)
My problem is when I implement it within a form the control value is an array (as expected) other times it's an actual FormArray object.
Here is a screenshot of two of the same component's values. One is an array of objects (expected) the other is an actual FormArray object which .value property contains the array of objects!
Here is some code of how it works in case you don't want to visit StackBlitz.
The custom control is implemented like this.
this.form = this.fb.group({
tags: this.fb.array([])
});
When the user selects a dropdown item or hits enter the object is saved like this:
get tagsArray(): FormArray { return this.form.get('tags') as FormArray; }
...
this.tagsArray.push(new FormControl(value));
this.onChange(this.tagsArray); // update controller value
from When is Angular's FormArray a traditional array and when is it a FormArray Array like object?

No comments:
Post a Comment