On this page
AbstractControl
class
This is the base class for FormControl
, FormGroup
, and FormArray
.
abstract class AbstractControl {
constructor(validator: ValidatorFn, asyncValidator: AsyncValidatorFn)
value: any
validator: ValidatorFn | null
asyncValidator: AsyncValidatorFn | null
parent: FormGroup | FormArray
status: string
valid: boolean
invalid: boolean
pending: boolean
disabled: boolean
enabled: boolean
errors: ValidationErrors | null
pristine: boolean
dirty: boolean
touched: boolean
untouched: boolean
valueChanges: Observable<any>
statusChanges: Observable<any>
updateOn: FormHooks
root: AbstractControl
setValidators(newValidator: ValidatorFn | ValidatorFn[]): void
setAsyncValidators(newValidator: AsyncValidatorFn | AsyncValidatorFn[]): void
clearValidators(): void
clearAsyncValidators(): void
markAsTouched(opts: { onlySelf?: boolean; } = {}): void
markAllAsTouched(): void
markAsUntouched(opts: { onlySelf?: boolean; } = {}): void
markAsDirty(opts: { onlySelf?: boolean; } = {}): void
markAsPristine(opts: { onlySelf?: boolean; } = {}): void
markAsPending(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void
disable(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void
enable(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void
setParent(parent: FormGroup | FormArray): void
abstract setValue(value: any, options?: Object): void
abstract patchValue(value: any, options?: Object): void
abstract reset(value?: any, options?: Object): void
updateValueAndValidity(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void
setErrors(errors: ValidationErrors, opts: { emitEvent?: boolean; } = {}): void
get(path: string | (string | number)[]): AbstractControl | null
getError(errorCode: string, path?: string | (string | number)[]): any
hasError(errorCode: string, path?: string | (string | number)[]): boolean
}
Subclasses
See also
Description
It provides some of the shared behavior that all controls and groups of controls have, like running validators, calculating status, and resetting state. It also defines the properties that are shared between all sub-classes, like value
, valid
, and dirty
. It shouldn't be instantiated directly.
Constructor
Initialize the AbstractControl instance. |
||||||
|
validator |
ValidatorFn |
The function that determines the synchronous validity of this control. |
asyncValidator |
AsyncValidatorFn |
The function that determines the asynchronous validity of this control. |
Properties
Property | Description |
---|---|
value: any |
Read-Only The current value of the control.
|
validator: ValidatorFn | null |
Declared in Constructor The function that determines the synchronous validity of this control. |
asyncValidator: AsyncValidatorFn | null |
Declared in Constructor The function that determines the asynchronous validity of this control. |
parent: FormGroup | FormArray |
Read-Only The parent control. |
status: string |
Read-Only The validation status of the control. There are four possible validation status values:
These status values are mutually exclusive, so a control cannot be both valid AND invalid or invalid AND disabled. |
valid: boolean |
Read-Only A control is See also: |
invalid: boolean |
Read-Only A control is See also: |
pending: boolean |
Read-Only A control is See also: |
disabled: boolean |
Read-Only A control is Disabled controls are exempt from validation checks and are not included in the aggregate value of their ancestor controls. See also: |
enabled: boolean |
Read-Only A control is See also: |
errors: ValidationErrors | null |
Read-Only An object containing any errors generated by failing validation, or null if there are no errors. |
pristine: boolean |
Read-Only A control is |
dirty: boolean |
Read-Only A control is |
touched: boolean |
Read-Only True if the control is marked as A control is marked |
untouched: boolean |
Read-Only True if the control has not been marked as touched A control is |
valueChanges: Observable<any> |
Read-Only A multicasting observable that emits an event every time the value of the control changes, in the UI or programmatically. |
statusChanges: Observable<any> |
Read-Only A multicasting observable that emits an event every time the validation See also: |
updateOn: FormHooks |
Read-Only Reports the update strategy of the |
root: AbstractControl |
Read-Only Retrieves the top-level ancestor of this control. |
Methods
setValidators()
|
|||
---|---|---|---|
Sets the synchronous validators that are active on this control. Calling this overwrites any existing sync validators. |
|||
|
newValidator |
ValidatorFn | ValidatorFn[] |
Returns
void
When you add or remove a validator at run time, you must call updateValueAndValidity()
for the new validation to take effect.
setAsyncValidators()
|
|||
---|---|---|---|
Sets the async validators that are active on this control. Calling this overwrites any existing async validators. |
|||
|
newValidator |
AsyncValidatorFn | AsyncValidatorFn[] |
Returns
void
When you add or remove a validator at run time, you must call updateValueAndValidity()
for the new validation to take effect.
clearValidators()
|
---|
Empties out the sync validator list. |
|
When you add or remove a validator at run time, you must call |
clearAsyncValidators()
|
---|
Empties out the async validator list. |
|
When you add or remove a validator at run time, you must call |
markAsTouched()
|
|||
---|---|---|---|
Marks the control as See also: |
|||
|
opts |
object |
Configuration options that determine how the control propagates changes and emits events events after marking is applied.
Optional. Default is |
Returns
void
markAllAsTouched()
|
---|
Marks the control and all its descendant controls as See also: |
|
markAsUntouched()
|
|||
---|---|---|---|
Marks the control as See also: |
|||
|
opts |
object |
Configuration options that determine how the control propagates changes and emits events after the marking is applied.
Optional. Default is |
Returns
void
If the control has any children, also marks all children as untouched
and recalculates the touched
status of all parent controls.
markAsDirty()
|
|||
---|---|---|---|
Marks the control as See also: |
|||
|
opts |
object |
Configuration options that determine how the control propagates changes and emits events after marking is applied.
Optional. Default is |
Returns
void
markAsPristine()
|
|||
---|---|---|---|
Marks the control as See also: |
|||
|
opts |
object |
Configuration options that determine how the control emits events after marking is applied.
Optional. Default is |
Returns
void
If the control has any children, marks all children as pristine
, and recalculates the pristine
status of all parent controls.
markAsPending()
|
|||
---|---|---|---|
Marks the control as See also: |
|||
|
opts |
object |
Configuration options that determine how the control propagates changes and emits events after marking is applied.
Optional. Default is |
Returns
void
A control is pending while the control performs async validation.
disable()
|
|||
---|---|---|---|
Disables the control. This means the control is exempt from validation checks and excluded from the aggregate value of any parent. Its status is See also: |
|||
|
opts |
object |
Configuration options that determine how the control propagates changes and emits events after the control is disabled.
Optional. Default is |
Returns
void
If the control has children, all children are also disabled.
enable()
|
|||
---|---|---|---|
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. See also: |
|||
|
opts |
object |
Configure options that control how the control propagates changes and emits events when marked as untouched
Optional. Default is |
Returns
void
By default, if the control has children, all children are enabled.
setParent()
|
---|
setValue()
|
||||||
---|---|---|---|---|---|---|
Sets the value of the control. Abstract method (implemented in sub-classes). |
||||||
|
value |
any |
|
options |
Object |
Optional. Default is |
Returns
void
patchValue()
|
||||||
---|---|---|---|---|---|---|
Patches the value of the control. Abstract method (implemented in sub-classes). |
||||||
|
value |
any |
|
options |
Object |
Optional. Default is |
Returns
void
reset()
|
||||||
---|---|---|---|---|---|---|
Resets the control. Abstract method (implemented in sub-classes). |
||||||
|
value |
any |
Optional. Default is |
options |
Object |
Optional. Default is |
Returns
void
updateValueAndValidity()
|
|||
---|---|---|---|
Recalculates the value and validation status of the control. |
|||
|
opts |
object |
Configuration options determine how the control propagates changes and emits events after updates and validity checks are applied.
Optional. Default is |
Returns
void
By default, it also updates the value and validity of its ancestors.
setErrors()
|
||||||
---|---|---|---|---|---|---|
Sets errors on a form control when running validations manually, rather than automatically. |
||||||
|
errors |
ValidationErrors |
|
opts |
object |
Optional. Default is |
Returns
void
Calling setErrors
also updates the validity of the parent control.
Usage Notes
Manually set the errors for a control
const login = new FormControl('someLogin');
login.setErrors({
notUnique: true
});
expect(login.valid).toEqual(false);
expect(login.errors).toEqual({ notUnique: true });
login.setValue('someOtherLogin');
expect(login.valid).toEqual(true);
get()
|
|||
---|---|---|---|
Retrieves a child control given the control's name or path. |
|||
|
path |
string | (string | number)[] |
A dot-delimited string or array of string/number values that define the path to the control. |
Returns
AbstractControl | null
Usage Notes
Retrieve a nested control
For example, to get a name
control nested within a person
sub-group:
this.form.get('person.name');
-OR-
this.form.get(['person', 'name']);
getError()
|
||||||
---|---|---|---|---|---|---|
Reports error data for the control with the given path. |
||||||
|
errorCode |
string |
The code of the error to check |
path |
string | (string | number)[] |
A list of control names that designates how to move from the current control to the control that should be queried for errors. Optional. Default is |
Returns
any
: error data for that particular error. If the control or error is not present, null is returned.
Usage Notes
For 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'
hasError()
|
||||||
---|---|---|---|---|---|---|
Reports whether the control with the given path has the error specified. |
||||||
|
errorCode |
string |
The code of the error to check |
path |
string | (string | number)[] |
A list of control names that designates how to move from the current control to the control that should be queried for errors. Optional. Default is |
Returns
boolean
: whether the given error is present in the control at the given path.
If the control is not present, false is returned.
Usage Notes
For 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.
© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v8.angular.io/api/forms/AbstractControl