FormGroupDirective
Binds an existing FormGroup or FormRecord to a DOM element.
constructor
FormGroupDirectiveFormGroupDirectivesubmitted
booleanReports whether the form submission has been triggered.
directives
FormControlName[]Tracks the list of added FormControlName instances
ngSubmit
EventEmitter<any>Emits an event when the form submission has been triggered.
formDirective
FormReturns this directive's instance.
path
string[]Returns an array representing the path to this group. Because this directive always lives at the top level of a form, it always an empty array.
addControl
FormControl<any>Method that sets up the control directive in this group, re-calculates its value and validity, and adds the instance to the internal list of directives.
FormControl<any>getControl
FormControl<any>Retrieves the FormControl instance from the provided FormControlName directive
FormControl<any>removeControl
voidRemoves the FormControlName instance from the internal list of directives
voidaddFormGroup
voidAdds a new FormGroupName directive instance to the form.
voidremoveFormGroup
voidPerforms the necessary cleanup when a FormGroupName directive instance is removed from the
view.
voidgetFormGroup
FormGroup<any>Retrieves the FormGroup for a provided FormGroupName directive instance
FormGroup<any>addFormArray
voidPerforms the necessary setup when a FormArrayName directive instance is added to the view.
voidremoveFormArray
voidPerforms the necessary cleanup when a FormArrayName directive instance is removed from the
view.
voidgetFormArray
FormArray<any>Retrieves the FormArray for a provided FormArrayName directive instance.
FormArray<any>updateModel
voidSets the new value for the provided FormControlName directive.
anyThe new value for the directive's control.
voidonSubmit
booleanMethod called with the "submit" event is triggered on the form.
Triggers the ngSubmit emitter to emit the "submit" event as its payload.
EventThe "submit" event object
booleanonReset
voidMethod called when the "reset" event is triggered on the form.
voidresetForm
voidResets the form to an initial value and resets its submitted status.
anyThe new value for the form, undefined by default
{ onlySelf?: boolean | undefined; emitEvent?: boolean | undefined; }voidname
string | number | nullThe name for the control
value
anyReports the value of the control if it is present, otherwise null.
valid
boolean | nullReports whether the control is valid. A control is considered valid if no validation errors exist with the current value. If the control is not present, null is returned.
invalid
boolean | nullReports whether the control is invalid, meaning that an error exists in the input value. If the control is not present, null is returned.
pending
boolean | nullReports whether a control is pending, meaning that async validation is occurring and errors are not yet available for the input value. If the control is not present, null is returned.
disabled
boolean | nullReports whether the control is disabled, meaning that the control is disabled in the UI and is exempt from validation checks and excluded from aggregate values of ancestor controls. If the control is not present, null is returned.
enabled
boolean | nullReports whether the control is enabled, meaning that the control is included in ancestor calculations of validity or value. If the control is not present, null is returned.
errors
ValidationErrors | nullReports the control's validation errors. If the control is not present, null is returned.
pristine
boolean | nullReports whether the control is pristine, meaning that the user has not yet changed the value in the UI. If the control is not present, null is returned.
dirty
boolean | nullReports whether the control is dirty, meaning that the user has changed the value in the UI. If the control is not present, null is returned.
touched
boolean | nullReports whether the control is touched, meaning that the user has triggered
a blur event on it. If the control is not present, null is returned.
status
string | nullReports the validation status of the control. Possible values include: 'VALID', 'INVALID', 'DISABLED', and 'PENDING'. If the control is not present, null is returned.
untouched
boolean | nullReports whether the control is untouched, meaning that the user has not yet triggered
a blur event on it. If the control is not present, null is returned.
statusChanges
anyReturns a multicasting observable that emits a validation status whenever it is calculated for the control. If the control is not present, null is returned.
valueChanges
anyReturns a multicasting observable of value changes for the control that emits every time the value of the control changes in the UI or programmatically. If the control is not present, null is returned.
validator
ValidatorFn | nullSynchronous validator function composed of all the synchronous validators registered with this directive.
asyncValidator
AsyncValidatorFn | nullAsynchronous validator function composed of all the asynchronous validators registered with this directive.
reset
voidResets the control with the provided value if the control is present.
anyvoidhasError
booleanReports whether the control with the given path has the error specified.
stringThe code of the error to check
string | (string | number)[] | undefinedA list of control names that designates how to move from the current control to the control that should be queried for errors.
booleanFor example, for the following FormGroup:
form = new FormGroup({ address: new FormGroup({ street: new FormControl() })});
The path to the 'street' control from the root form would be 'address' -> 'street'.
It can be provided to this method in one of two formats:
- An array of string control names, e.g.
['address', 'street'] - A period-delimited list of control names in one string, e.g.
'address.street'
If no path is given, this method checks for the error on the current control.
getError
anyReports error data for the control with the given path.
stringThe code of the error to check
string | (string | number)[] | undefinedA list of control names that designates how to move from the current control to the control that should be queried for errors.
anyFor example, for the following FormGroup:
form = new FormGroup({ address: new FormGroup({ street: new FormControl() })});
The path to the 'street' control from the root form would be 'address' -> 'street'.
It can be provided to this method in one of two formats:
- An array of string control names, e.g.
['address', 'street'] - A period-delimited list of control names in one string, e.g.
'address.street'
Description
Binds an existing FormGroup or FormRecord to a DOM element.
This directive accepts an existing FormGroup instance. It will then use this
FormGroup instance to match any child FormControl, FormGroup/FormRecord,
and FormArray instances to child FormControlName, FormGroupName,
and FormArrayName directives.
Exported by
Usage Notes
Register Form Group
The following example registers a FormGroup with first name and last name controls,
and listens for the ngSubmit event when the button is clicked.
import {Component} from '@angular/core';import {FormControl, FormGroup, Validators} from '@angular/forms';@Component({ selector: 'example-app', template: ` <form [formGroup]="form" (ngSubmit)="onSubmit()"> @if(first.invalid) { <div>Name is too short.</div> } <input formControlName="first" placeholder="First name" /> <input formControlName="last" placeholder="Last name" /> <button type="submit">Submit</button> </form> <button (click)="setValue()">Set preset value</button> `, standalone: false,})export class SimpleFormGroup { form = new FormGroup({ first: new FormControl('Nancy', Validators.minLength(2)), last: new FormControl('Drew'), }); get first(): any { return this.form.get('first'); } onSubmit(): void { console.log(this.form.value); // {first: 'Nancy', last: 'Drew'} } setValue() { this.form.setValue({first: 'Carson', last: 'Drew'}); }}