FormGroup class
Tracks the value and validity state of a group of FormControl instances.
A FormGroup aggregates the values of each child FormControl into one object, with each control name as the key.
It calculates its status by reducing the status values of its children. For example, if one of the controls in a group is invalid, the entire group becomes invalid.
- Inheritance
-
- Object
- AbstractControl<
Map< String, Object?> > - FormGroup
- Mixed in types
- Available Extensions
Constructors
-
FormGroup(Map<
String, AbstractControl> controls, {List<Validator> validators = const [], List<AsyncValidator> asyncValidators = const [], int asyncValidatorsDebounceTime = 250, bool disabled = false}) - Creates a new FormGroup 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
→ Map<
String, AbstractControl< Object?> > -
Gets the collection 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 group.
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
→ Map<
String, Object?> -
Gets the value of the FormGroup, 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
↔ Map<
String, Object?> -
The current value of the control.
getter/setter pairoverride
-
valueChanges
→ Stream<
Map< String, Object?> ?> -
A Stream that emits the value of the control every time it changes.
no setterinherited
Methods
-
addAll(
Map< String, AbstractControl> controls) → void -
Appends all
controls
to the group. -
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 -
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 collection 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 group.
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 -
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.
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(
Map< String, Object?> ? value, {bool updateParent = true, bool emitEvent = true}) → void -
Patches the value of the FormGroup. It accepts an object with control
names as keys, and does its best to match the values to the correct
controls in the group.
override
-
reduceValue(
) → Map< String, Object?> -
Reduce the value of the group is a key-value pair for each control
in the group.
override
-
removeControl(
String name, {bool updateParent = true, bool emitEvent = true}) → void -
Remove a control from this group given the
name
of the control. -
removeError(
String key, {bool markAsDirty = false}) → void -
Removes an error given the error
key
.inherited -
reset(
{Map< String, Object?> ? 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(
Map< String, ControlState< state, {bool removeFocus = false}) → voidObject> > - Resets the FormGroup, marks all descendants as untouched, and sets the value of all descendants to null.
-
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(
Map< String, Object?> ? value, {bool updateParent = true, bool emitEvent = true}) → void -
Sets the value of the FormGroup.
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