AbstractControl
This is the base class for FormControl
, FormGroup
, and FormArray
.
abstract class AbstractControl<TValue = any, TRawValue extends TValue = TValue> {
constructor(validators: ValidatorFn | ValidatorFn[], asyncValidators: AsyncValidatorFn | AsyncValidatorFn[])
value: TValue
validator: ValidatorFn | null
asyncValidator: AsyncValidatorFn | null
parent: FormGroup | FormArray | null
status: FormControlStatus
valid: boolean
invalid: boolean
pending: boolean
disabled: boolean
enabled: boolean
errors: ValidationErrors | null
pristine: boolean
dirty: boolean
touched: boolean
untouched: boolean
valueChanges: Observable<TValue>
statusChanges: Observable<FormControlStatus>
updateOn: FormHooks
root: AbstractControl
setValidators(validators: ValidatorFn | ValidatorFn[]): void
setAsyncValidators(validators: AsyncValidatorFn | AsyncValidatorFn[]): void
addValidators(validators: ValidatorFn | ValidatorFn[]): void
addAsyncValidators(validators: AsyncValidatorFn | AsyncValidatorFn[]): void
removeValidators(validators: ValidatorFn | ValidatorFn[]): void
removeAsyncValidators(validators: AsyncValidatorFn | AsyncValidatorFn[]): void
hasValidator(validator: ValidatorFn): boolean
hasAsyncValidator(validator: AsyncValidatorFn): boolean
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<any> | FormArray<any>): void
abstract setValue(value: TRawValue, options?: Object): void
abstract patchValue(value: TValue, options?: Object): void
abstract reset(value?: TValue, options?: Object): void
getRawValue(): any
updateValueAndValidity(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void
setErrors(errors: ValidationErrors, opts: { emitEvent?: boolean; } = {}): void
get<P extends string | ((string | number)[])>(path: P): AbstractControl<ɵGetProperty<TRawValue, P>> | null
get<P extends string | (readonly (string | number)[])>(path: P): AbstractControl<ɵGetProperty<TRawValue, P>> | null
get<P extends string | Array<string | number>>(path: P): AbstractControl<ɵGetProperty<TRawValue, P>> | 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.
The first type parameter TValue represents the value type of the control (control.value
).
The optional type parameter TRawValue represents the raw value type (control.getRawValue()
).
Constructor
Initialize the AbstractControl instance. |
||||||
Parameters
|
Properties
Property | Description |
---|---|
value: TValue
|
Read-Only
The current value of the control.
|
validator: ValidatorFn | null
|
Returns the function that is used to determine the validity of this control synchronously.
If multiple validators have been added, this will be a single composed function.
See |
asyncValidator: AsyncValidatorFn | null
|
Returns the function that is used to determine the validity of this control asynchronously.
If multiple validators have been added, this will be a single composed function.
See |
parent: FormGroup | FormArray | null
|
Read-Only
The parent control. |
status: FormControlStatus
|
Read-Only
The validation status of the control. See also:
|
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<TValue>
|
Read-Only
A multicasting observable that emits an event every time the value of the control changes, in the UI or programmatically. It also emits an event each time you call enable() or disable() without passing along {emitEvent: false} as a function argument. Note: the emit happens right after a value of this control is updated. The value of a
parent control (for example if this FormControl is a part of a FormGroup) is updated later, so
accessing a value of a parent control (using the |
statusChanges: Observable<FormControlStatus>
|
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 synchronous validators. |
|||
Parameters
Returns
|
|||
When you add or remove a validator at run time, you must call
If you want to add a new validator without affecting existing ones, consider
using |
setAsyncValidators() | |||
---|---|---|---|
Sets the asynchronous validators that are active on this control. Calling this overwrites any existing asynchronous validators. |
|||
Parameters
Returns
|
|||
When you add or remove a validator at run time, you must call
If you want to add a new validator without affecting existing ones, consider
using |
addValidators() | |||
---|---|---|---|
Add a synchronous validator or validators to this control, without affecting other validators. |
|||
Parameters
Returns
|
|||
When you add or remove a validator at run time, you must call
Adding a validator that already exists will have no effect. If duplicate validator functions
are present in the |
addAsyncValidators() | |||
---|---|---|---|
Add an asynchronous validator or validators to this control, without affecting other validators. |
|||
Parameters
Returns
|
|||
When you add or remove a validator at run time, you must call
Adding a validator that already exists will have no effect. |
removeValidators() | |||
---|---|---|---|
Remove a synchronous validator from this control, without affecting other validators. Validators are compared by function reference; you must pass a reference to the exact same validator function as the one that was originally set. If a provided validator is not found, it is ignored. |
|||
Parameters
Returns
|
|||
Usage NotesReference to a ValidatorFn
When you add or remove a validator at run time, you must call
|
removeAsyncValidators() | |||
---|---|---|---|
Remove an asynchronous validator from this control, without affecting other validators. Validators are compared by function reference; you must pass a reference to the exact same validator function as the one that was originally set. If a provided validator is not found, it is ignored. |
|||
Parameters
Returns
|
|||
When you add or remove a validator at run time, you must call
|
hasValidator() | |||
---|---|---|---|
Check whether a synchronous validator function is present on this control. The provided validator must be a reference to the exact same function that was provided. |
|||
Parameters
Returns
|
|||
Usage NotesReference to a ValidatorFn
|
hasAsyncValidator() | |||
---|---|---|---|
Check whether an asynchronous validator function is present on this control. The provided validator must be a reference to the exact same function that was provided. |
|||
Parameters
Returns
|
clearValidators() |
---|
Empties out the synchronous validator list. |
ParametersThere are no parameters. Returns
|
When you add or remove a validator at run time, you must call
|
clearAsyncValidators() |
---|
Empties out the async validator list. |
ParametersThere are no parameters. Returns
|
When you add or remove a validator at run time, you must call
|
markAllAsTouched() |
---|
Marks the control and all its descendant controls as See also: |
ParametersThere are no parameters. Returns
|
markAsUntouched() | |||
---|---|---|---|
Marks the control as See also: |
|||
Parameters
Returns
|
|||
If the control has any children, also marks all children as |
markAsDirty() | |||
---|---|---|---|
Marks the control as See also: |
|||
Parameters
Returns
|
markAsPristine() | |||
---|---|---|---|
Marks the control as See also: |
|||
Parameters
Returns
|
|||
If the control has any children, marks all children as |
markAsPending() | |||
---|---|---|---|
Marks the control as See also: |
|||
Parameters
Returns
|
|||
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: |
|||
Parameters
Returns
|
|||
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: |
|||
Parameters
Returns
|
|||
By default, if the control has children, all children are enabled. |
setParent() |
---|
Sets the parent of the control |
setValue() |
---|
Sets the value of the control. Abstract method (implemented in sub-classes). |
patchValue() |
---|
Patches the value of the control. Abstract method (implemented in sub-classes). |
reset() |
---|
Resets the control. Abstract method (implemented in sub-classes). |
getRawValue() |
---|
The raw value of this control. For most control implementations, the raw value will include disabled children. |
ParametersThere are no parameters. Returns
|
updateValueAndValidity() | |||
---|---|---|---|
Recalculates the value and validation status of the control. |
|||
Parameters
Returns
|
|||
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. |
||||||
Parameters
Returns
|
||||||
Calling |
||||||
Usage NotesManually set the errors for a control
|
get() | |||
---|---|---|---|
Retrieves a child control given the control's name or path. |
|||
Parameters
Returns
|
|||
Parameters
Returns
This signature for |
|||
This signature for get supports strings and |
|||
Usage NotesRetrieve a nested controlFor example, to get a
-OR-
Retrieve a control in a FormArrayWhen accessing an element inside a FormArray, you can use an element index.
For example, to get a
-OR-
|
getError() | ||||||
---|---|---|---|---|---|---|
Reports error data for the control with the given path. |
||||||
Parameters
Returns
|
||||||
Usage NotesFor example, for the following
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:
|
hasError() | ||||||
---|---|---|---|---|---|---|
Reports whether the control with the given path has the error specified. |
||||||
Parameters
Returns
If the control is not present, false is returned. |
||||||
Usage NotesFor example, for the following
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:
If no path is given, this method checks for the error on the current control. |