FormArray<T> class
A FormArray aggregates the values of each child FormControl into an array.
It calculates its status by reducing the status values of its children. For example, if one of the controls in a FormArray is invalid, the entire array becomes invalid.
FormArray is one of the three fundamental building blocks used to define forms in Reactive Forms, along with FormControl and FormGroup.
- Inheritance
-
- Object
- AbstractControl<
List< T?> > - FormArray
- Mixed in types
- Available Extensions
Constructors
-
FormArray(List<
AbstractControl< controls, {List<T> >Validator> validators = const [], List<AsyncValidator> asyncValidators = const [], int asyncValidatorsDebounceTime = 250, bool disabled = false}) - Creates a new FormArray instance.
Properties
-
asyncValidators
→ List<
AsyncValidator> -
The list of async functions that determines the validity of this control.
no setterinherited
-
collectionChanges
→ Stream<
List< AbstractControl< >Object?> > -
Emits when a control is added or removed from collection.
no setterinherited
-
controls
→ List<
AbstractControl< T> > -
Gets the list of child controls.
no setter
- dirty → bool
-
A control is
dirty
if the user has changed the value in the UI.no setterinherited - disabled → bool
-
A control is disabled when its status is ControlStatus.disabled.
no setterinherited
- enabled → bool
-
A control is enabled as long as its status is
not ControlStatus.disabled.
no setterinherited
-
errors
→ Map<
String, Object> -
Gets all errors of the array.
no setteroverride
- hasErrors → bool
-
True whether the control has validation errors.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- invalid → bool
-
A control is invalid when its status is ControlStatus.invalid.
no setterinherited
-
parent
↔ AbstractControl<
Object> ? -
The parent control.
getter/setter pairinherited
- pending → bool
-
A control is pending when its status is ControlStatus.pending.
no setterinherited
- pristine → bool
-
A control is
pristine
if the user has not yet changed the value in the UI.no setterinherited -
rawValue
→ List<
T?> -
Gets the value of the FormArray, including any disabled controls.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- status → ControlStatus
-
The validation status of the control.
no setterinherited
-
statusChanged
→ Stream<
ControlStatus> -
A Stream that emits the status every time it changes.
no setterinherited
-
touchChanges
→ Stream<
bool> -
A Stream that emits an event every time the control
is touched or untouched.
no setterinherited
- touched → bool
-
Gets if the control is touched or not.
no setterinherited
- valid → bool
-
A control is valid when its status is ControlStatus.valid.
no setterinherited
-
validators
→ List<
Validator> -
The list of functions that determines the validity of this control.
no setterinherited
-
value
↔ List<
T?> ? -
The current value of the control.
getter/setter pairinherited-getteroverride-setter
-
valueChanges
→ Stream<
List< T?> ?> -
A Stream that emits the value of the control every time it changes.
no setterinherited
Methods
-
add(
AbstractControl< T> control, {bool updateParent = true, bool emitEvent = true}) → void -
Insert a new
control
at the end of the array. -
addAll(
List< AbstractControl< controls, {bool updateParent = true, bool emitEvent = true}) → voidT> > -
Appends all
controls
to the end of this array. -
allControlsDisabled(
) → bool -
Returns true if all children disabled, otherwise returns false.
override
-
anyControls(
bool condition(AbstractControl)) → bool -
override
-
anyControlsHaveStatus(
ControlStatus status) → bool -
Returns true if all children has the specified
status
, otherwise returns false.override -
clear(
{bool emitEvent = true, bool updateParent = true}) → void - Removes all children controls from the array.
-
clearAsyncValidators(
) → void -
Empties out the async validator list.
inherited
-
clearValidators(
) → void -
Empties out the sync validator list.
inherited
-
closeCollectionEvents(
) → void -
Close stream that emit collection change events
inherited
-
contains(
String name) → bool -
Checks if array contains a control by a given
name
.override -
control(
String name) → AbstractControl -
Retrieves a child control given the control's
name
or path.override -
dispose(
) → void -
Disposes the array.
override
-
emitsCollectionChanged(
List< AbstractControl< controls) → voidObject?> > -
Notify to listeners that the collection changed.
inherited
-
findControl(
String path) → AbstractControl? -
override
-
findControlInCollection(
List< String> path) → AbstractControl<Object> ? -
Walks the
path
to find the matching control.inherited -
focus(
[String name = '']) → void -
Sets focus to a child control.
override
-
forEachChild(
void callback(AbstractControl)) → void -
override
-
getError(
String errorCode, [String? path]) → Object? -
Returns the error data for the control with the given
errorCode
in the givenpath
.inherited -
hasError(
String errorCode, [String? path]) → bool -
Reports whether the control with the given
path
has the specifiederrorCode
.inherited -
insert(
int index, AbstractControl< T> control, {bool updateParent = true, bool emitEvent = true}) → void -
Insert a
control
at the givenindex
position. -
markAllAsTouched(
{bool updateParent = true, bool emitEvent = true}) → void -
Marks the control and all its descendant controls as touched.
inherited
-
markAsDirty(
{bool updateParent = true, bool emitEvent = true}) → void -
Marks the control as
dirty
.inherited -
markAsDisabled(
{bool updateParent = true, bool emitEvent = true}) → void -
Disables the control.
override
-
markAsEnabled(
{bool updateParent = true, bool emitEvent = true}) → void -
Enables the control. This means the control is included in validation
checks and the aggregate value of its parent. Its status recalculates
based on its value and its validators.
override
-
markAsPristine(
{bool updateParent = true}) → void -
Marks the control as
pristine
.inherited -
markAsTouched(
{bool updateParent = true, bool emitEvent = true}) → void -
Marks the control as touched.
inherited
-
markAsUntouched(
{bool updateParent = true, bool emitEvent = true}) → void -
Marks the control as untouched.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
patchValue(
List< T?> ? value, {bool updateParent = true, bool emitEvent = true}) → void -
Patches the value of the
FormArray
. It accepts an array that matches the structure of the control, and does its best to match the values to the correct controls in the array.override -
reduceValue(
) → List< T?> ? -
Gets the values of controls as an Iterable.
override
-
remove(
AbstractControl< T> control, {bool emitEvent = true, bool updateParent = true}) → void -
Removes
control
from the array. -
removeAt(
int index, {bool emitEvent = true, bool updateParent = true}) → AbstractControl< T> -
Removes and returns the child control at the given
index
. -
removeError(
String key, {bool markAsDirty = false}) → void -
Removes an error given the error
key
.inherited -
reset(
{List< T?> ? value, bool updateParent = true, bool emitEvent = true, bool removeFocus = false, bool? disabled}) → void -
Resets the control, marking it as untouched, pristine and setting the
value to null.
inherited
-
resetState(
List< ControlState< state) → voidT> > - Resets the array, marking all controls as untouched, and setting a state for children with an initial value and disabled state.
-
setAsyncValidators(
List< AsyncValidator> validators, {bool autoValidate = false, bool updateParent = true, bool emitEvent = true}) → void -
Sets the async
validators
that are active on this control. Calling this overwrites any existing async validators.inherited -
setErrors(
Map< String, dynamic> errors, {bool markAsDirty = true}) → void -
Sets errors on a form control when running validations manually,
rather than automatically.
inherited
-
setValidators(
List< Validator> validators, {bool autoValidate = false, bool updateParent = true, bool emitEvent = true}) → void -
Sets the synchronous
validators
that are active on this control. Calling this overwrites any existing sync validators.inherited -
toString(
) → String -
A string representation of this object.
inherited
-
unfocus(
{bool touched = true}) → void -
Remove the focus from the UI widget without the interaction of the user.
inherited
-
updatePristine(
{bool updateParent = true}) → void -
inherited
-
updateTouched(
{bool updateParent = true}) → void -
inherited
-
updateValue(
List< T?> ? value, {bool updateParent = true, bool emitEvent = true}) → void -
Sets the value of the FormArray.
override
-
updateValueAndValidity(
{bool updateParent = true, bool emitEvent = true}) → void -
Recalculates the value and validation status of the control.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited