FormGroupDirective
Связывает существующий FormGroup или FormRecord с элементом DOM.
API
class FormGroupDirective extends AbstractFormDirective {
@Input('formGroup') form: FormGroup<any>;
@Output() ngSubmit: EventEmitter<any>;
readonly control: FormGroup<any>;
override readonly submitted: boolean;
override directives: FormControlName[];
protected override onChanges(changes: { [propName: string]: SimpleChange<any>; }): void;
protected override onDestroy(): void;
override readonly formDirective: Form;
override readonly path: string[];
override addControl(dir: FormControlName): FormControl<any>;
override getControl(dir: FormControlName): FormControl<any>;
override removeControl(dir: FormControlName): void;
override addFormGroup(dir: FormGroupName): void;
override removeFormGroup(dir: FormGroupName): void;
override getFormGroup(dir: FormGroupName): FormGroup<any>;
override getFormArray(dir: FormArrayName): FormArray<any>;
override addFormArray(dir: FormArrayName): void;
override removeFormArray(dir: FormArrayName): void;
override updateModel(dir: FormControlName, value: any): void;
override onReset(): void;
override resetForm(value?: any, options?: { onlySelf?: boolean | undefined; emitEvent?: boolean | undefined; }): void;
override onSubmit($event: Event): boolean;
override name: string | number | null;
override readonly value: any;
override readonly valid: boolean | null;
override readonly invalid: boolean | null;
override readonly pending: boolean | null;
override readonly disabled: boolean | null;
override readonly enabled: boolean | null;
override readonly errors: ValidationErrors | null;
override readonly pristine: boolean | null;
override readonly dirty: boolean | null;
override readonly touched: boolean | null;
override readonly status: string | null;
override readonly untouched: boolean | null;
override readonly statusChanges: any;
override readonly valueChanges: any;
override readonly validator: ValidatorFn | null;
override readonly asyncValidator: AsyncValidatorFn | null;
override reset(value?: any): void;
override hasError(errorCode: string, path?: string | (string | number)[] | undefined): boolean;
override getError(errorCode: string, path?: string | (string | number)[] | undefined): any;
}
ngSubmit
EventEmitter<any>Генерирует событие при отправке формы.
submitted
booleanСообщает, была ли инициирована отправка формы.
directives
FormControlName[]Отслеживает список добавленных экземпляров FormControlName
ngOnChanges
void{ [propName: string]: SimpleChange<any>; }
void
ngOnDestroy
voidvoid
onChanges
void{ [propName: string]: SimpleChange<any>; }
void
onDestroy
voidvoid
formDirective
FormВозвращает экземпляр этой директивы.
path
string[]Возвращает массив, представляющий путь к этой группе. Поскольку эта директива всегда находится на верхнем уровне формы, массив всегда пуст.
addControl
FormControl<any>Настраивает директиву управления в этой группе, пересчитывает ее значение и допустимость, а также добавляет экземпляр во внутренний список директив.
FormControl<any>
getControl
FormControl<any>Получает экземпляр FormControl из указанной директивы FormControlName
FormControl<any>
removeControl
voidУдаляет экземпляр FormControlName из внутреннего списка директив
void
addFormGroup
voidДобавляет в форму новый экземпляр директивы FormGroupName.
void
removeFormGroup
voidВыполняет необходимую очистку при удалении экземпляра директивы FormGroupName из представления.
void
getFormGroup
FormGroup<any>Получает FormGroup для указанного экземпляра директивы FormGroupName
FormGroup<any>
getFormArray
FormArray<any>Получает FormArray для указанного экземпляра директивы FormArrayName.
FormArray<any>
addFormArray
voidВыполняет необходимую настройку при добавлении экземпляра директивы FormArrayName в представление.
void
removeFormArray
voidВыполняет необходимую очистку при удалении экземпляра директивы FormArrayName из представления.
void
updateModel
voidЗадает новое значение для указанной директивы FormControlName.
anyНовое значение для элемента управления этой директивы.
void
onReset
voidМетод, вызываемый при возникновении события "reset" для формы.
void
resetForm
voidСбрасывает форму к начальному значению и сбрасывает ее состояние отправки.
anyНовое значение формы.
{ onlySelf?: boolean | undefined; emitEvent?: boolean | undefined; }
void
onSubmit
booleanМетод, вызываемый при возникновении события "submit" для формы. Запускает эмиттер ngSubmit для генерации события "submit" с этим событием в качестве полезной нагрузки.
EventОбъект события "submit"
boolean
name
string | number | nullИмя элемента управления
value
anyВозвращает значение элемента управления, если он существует; в противном случае — null.
valid
boolean | nullСообщает, является ли элемент управления допустимым. Элемент управления считается допустимым, если для текущего значения нет ошибок проверки. Если элемент управления отсутствует, возвращается null.
invalid
boolean | nullСообщает, является ли элемент управления недопустимым, то есть содержит ли введенное значение ошибку. Если элемент управления отсутствует, возвращается null.
pending
boolean | nullСообщает, находится ли элемент управления в ожидании: выполняется асинхронная проверка, и ошибки для введенного значения еще недоступны. Если элемент управления отсутствует, возвращается null.
disabled
boolean | nullСообщает, отключен ли элемент управления: он отключен в пользовательском интерфейсе, не участвует в проверках и исключается из агрегированных значений родительских элементов управления. Если элемент управления отсутствует, возвращается null.
enabled
boolean | nullСообщает, включен ли элемент управления, то есть учитывается ли он при вычислении допустимости или значения родительских элементов управления. Если элемент управления отсутствует, возвращается null.
errors
ValidationErrors | nullВозвращает ошибки проверки элемента управления. Если элемент управления отсутствует, возвращается null.
pristine
boolean | nullСообщает, остается ли элемент управления неизмененным, то есть пользователь еще не менял его значение в пользовательском интерфейсе. Если элемент управления отсутствует, возвращается null.
dirty
boolean | nullСообщает, изменял ли пользователь значение элемента управления в пользовательском интерфейсе. Если элемент управления отсутствует, возвращается null.
touched
boolean | nullСообщает, было ли взаимодействие с элементом управления, то есть инициировал ли пользователь для него событие blur. Если элемент управления отсутствует, возвращается null.
status
string | nullВозвращает статус проверки элемента управления. Возможные значения: 'VALID', 'INVALID', 'DISABLED' и 'PENDING'. Если элемент управления отсутствует, возвращается null.
untouched
boolean | nullСообщает, было ли взаимодействие с элементом управления, то есть инициировал ли пользователь для него событие blur. Если элемент управления отсутствует, возвращается null.
statusChanges
anyВозвращает мультикастовый observable, который генерирует статус проверки каждый раз, когда он вычисляется для элемента управления. Если элемент управления отсутствует, возвращается null.
valueChanges
anyВозвращает мультикастовый observable изменений значения элемента управления, который генерирует событие каждый раз, когда значение элемента управления меняется в пользовательском интерфейсе или программно. Если элемент управления отсутствует, возвращается null.
validator
ValidatorFn | nullФункция синхронной проверки, объединяющая все синхронные валидаторы, зарегистрированные в этой директиве.
asyncValidator
AsyncValidatorFn | nullФункция асинхронной проверки, объединяющая все асинхронные валидаторы, зарегистрированные в этой директиве.
reset
voidСбрасывает элемент управления, задавая указанное значение, если элемент управления существует.
any
void
hasError
booleanСообщает, есть ли у элемента управления по указанному пути заданная ошибка.
stringКод проверяемой ошибки
string | (string | number)[] | undefinedСписок имен элементов управления, определяющий путь от текущего элемента управления до того, у которого нужно проверить наличие ошибок.
booleanНаличие указанной ошибки у элемента управления по заданному пути.
Если элемент управления отсутствует, возвращается false.
Например, для следующего FormGroup:
form = new FormGroup({
address: new FormGroup({ street: new FormControl() })
});
Путь от корневой формы к элементу управления 'street' будет таким: 'address' -> 'street'.
Его можно передать этому методу в одном из двух форматов:
- Массив строк с именами элементов управления, например
['address', 'street'] - Разделенный точками список имен элементов управления в одной строке, например
'address.street'
Если путь не указан, этот метод проверяет наличие ошибки у текущего элемента управления.
getError
anyВозвращает данные об ошибке для элемента управления по указанному пути.
stringКод проверяемой ошибки
string | (string | number)[] | undefinedСписок имен элементов управления, определяющий путь от текущего элемента управления до того, у которого нужно проверить наличие ошибок.
anyДанные для этой конкретной ошибки. Если элемент управления или ошибка отсутствует, возвращается null.
Например, для следующего FormGroup:
form = new FormGroup({
address: new FormGroup({ street: new FormControl() })
});
Путь от корневой формы к элементу управления 'street' будет таким: 'address' -> 'street'.
Его можно передать этому методу в одном из двух форматов:
- Массив строк с именами элементов управления, например
['address', 'street'] - Разделенный точками список имен элементов управления в одной строке, например
'address.street'
Описание
Связывает существующий FormGroup или FormRecord с элементом DOM.
Эта директива принимает существующий экземпляр FormGroup. Затем она использует этот экземпляр FormGroup, чтобы сопоставить любые дочерние экземпляры FormControl, FormGroup/FormRecord и FormArray с дочерними директивами FormControlName, FormGroupName и FormArrayName.
Экспортировано из
Примечания по использованию
Регистрация группы формы
Следующий пример регистрирует FormGroup с элементами управления для имени и фамилии, а также отслеживает событие ngSubmit при нажатии кнопки.
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'});
}
}
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/forms/FormGroupDirective