FormBuilder
Создает AbstractControl на основе конфигурации, заданной пользователем.
API
class FormBuilder {
readonly nonNullable: NonNullableFormBuilder;
group<T extends {}>(controls: T, options?: AbstractControlOptions | null | undefined): FormGroup<ɵNullableFormControls<T>>;
group(controls: { [key: string]: any; }, options: { [key: string]: any; }): FormGroup<any>;
record<T>(controls: { [key: string]: T; }, options?: AbstractControlOptions | null): FormRecord<ɵElement<T, null>>;
control<T>(formState: T | FormControlState<T>, opts: FormControlOptions & { initialValueIsDefault: true; }): FormControl<T>;
control<T>(formState: T | FormControlState<T>, opts: FormControlOptions & { nonNullable: true; }): FormControl<T>;
control<T>(formState: T | FormControlState<T>, opts: FormControlOptions, asyncValidator: AsyncValidatorFn | AsyncValidatorFn[]): FormControl<T | null>;
control<T>(formState: T | FormControlState<T>, validatorOrOpts?: ValidatorFn | FormControlOptions | ValidatorFn[] | null | undefined, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null | undefined): FormControl<T | null>;
array<T>(controls: T[], validatorOrOpts?: ValidatorFn | AbstractControlOptions | ValidatorFn[] | null | undefined, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null | undefined): FormArray<ɵElement<T, null>>;
}
nonNullable
NonNullableFormBuilderВозвращает FormBuilder, в котором автоматически создаваемые элементы FormControl имеют {nonNullable: true} и не допускают значения null.
Создание элементов управления, не допускающих значения null
При создании элемент управления не будет допускать значение null и будет сбрасываться до исходного значения.
let nnfb = new FormBuilder().nonNullable;
let name = nnfb.control('Alex'); // FormControl<string>
name.reset();
console.log(name); // 'Alex'
Создание групп или массивов, не допускающих значения null
При создании группы или массива все автоматически создаваемые внутренние элементы управления не будут допускать значения null и будут сбрасываться до исходных значений.
let nnfb = new FormBuilder().nonNullable;
let name = nnfb.group({who: 'Alex'}); // FormGroup<{who: FormControl<string>}>
name.reset();
console.log(name); // {who: 'Alex'}
Создание допускающих значение null полей в группах или массивах
Поле по-прежнему может допускать значение null. В частности, любой FormControl, который уже создан, не будет изменен. Например:
let nnfb = new FormBuilder().nonNullable;
// FormGroup<{who: FormControl<string|null>}>
let name = nnfb.group({who: new FormControl('Alex')});
name.reset(); console.log(name); // {who: null}
Поскольку внутренний элемент управления явно создается вызывающим кодом, конструктор не может контролировать способ его создания и исключить null.
group
2 перегрузкиСоздает экземпляр FormGroup. Принимает один обобщенный аргумент — объект, содержащий все ключи и соответствующие типы внутренних элементов управления.
TКоллекция дочерних элементов управления. Ключ каждого дочернего элемента — это имя, под которым он зарегистрирован. Каждое значение может быть одним из следующих вариантов:
- Экземпляр
AbstractControl— передается без изменений. - Исходное значение — сокращенная форма записи
fb.control(value). - Объект
FormControlState({value, disabled}) — инициализирует элемент управления значением и состоянием отключения. - Кортеж
ControlConfig—[value | FormControlState, validatorOrOpts?, asyncValidator?]. Второй элемент принимаетValidatorFn, массив значенийValidatorFnили объектAbstractControlOptions(используйте его, чтобы задатьupdateOn). Необязательный третий элемент принимаетAsyncValidatorFnили массив значенийAsyncValidatorFn.
AbstractControlOptions | null | undefinedОбъект параметров конфигурации для FormGroup. Объект должен иметь тип AbstractControlOptions и может содержать следующие поля:
-
validators: Функция синхронного валидатора или массив функций-валидаторов. -
asyncValidators: Один асинхронный валидатор или массив функций асинхронных валидаторов. -
updateOn: Событие, при котором следует обновить элемент управления (варианты: 'change' | 'blur' | submit').
FormGroup<ɵNullableFormControls<T>>
Различные способы задания значения элемента управления
const fb = new FormBuilder();
fb.group({
// Raw value — equivalent to fb.control('Ada')
name: 'Ada',
// FormControlState — sets initial value and disabled status
city: {value: 'London', disabled: true},
// ControlConfig tuple — value with a sync validator
email: ['ada@example.com', Validators.email],
// ControlConfig tuple — value, sync validator, and async validator
username: ['ada', Validators.required, checkUsernameAvailable],
// ControlConfig tuple — disabled value with updateOn option
role: [{value: 'admin', disabled: true}, {updateOn: 'blur'}],
// Pre-built control — passed through unchanged
address: new FormControl('', Validators.required),
});
Создает экземпляр FormGroup.
{ [key: string]: any; }Запись дочерних элементов управления. Ключ каждого дочернего элемента — это имя, под которым зарегистрирован элемент управления.
{ [key: string]: any; }Объект параметров конфигурации для FormGroup. Устаревший объект конфигурации состоит из следующих полей:
-
validator: Функция синхронного валидатора или массив функций-валидаторов. -
asyncValidator: Один асинхронный валидатор или массив функций асинхронных валидаторов. Примечание: устаревший формат признан устаревшим и может быть удален в одном из следующих основных выпусков Angular.
FormGroup<any>
record
FormRecord<ɵElement<T, null>>Создает экземпляр FormRecord. Принимает один обобщенный аргумент — объект, содержащий все ключи и соответствующие типы внутренних элементов управления.
{ [key: string]: T; }Коллекция дочерних элементов управления. Ключ каждого дочернего элемента — это имя, под которым он зарегистрирован.
AbstractControlOptions | nullОбъект параметров конфигурации для FormRecord. Объект должен иметь тип AbstractControlOptions и может содержать следующие поля:
-
validators: Функция синхронного валидатора или массив функций-валидаторов. -
asyncValidators: Один асинхронный валидатор или массив функций асинхронных валидаторов. -
updateOn: Событие, при котором следует обновить элемент управления (варианты: 'change' | 'blur' | submit').
FormRecord<ɵElement<T, null>>
control
4 перегрузкиFormControl<T>
FormControl<T>
FormControl<T | null>
FormControl<T | null>
array
FormArray<ɵElement<T, null>>Создает FormArray из заданного массива конфигураций, валидаторов и параметров. Принимает один обобщенный аргумент — тип каждого элемента управления в массиве.
T[]Массив дочерних элементов управления или конфигураций элементов управления. При регистрации каждому дочернему элементу управления присваивается индекс.
ValidatorFn | AbstractControlOptions | ValidatorFn[] | null | undefinedФункция синхронного валидатора, массив таких функций или объект AbstractControlOptions, содержащий функции проверки и событие запуска проверки.
AsyncValidatorFn | AsyncValidatorFn[] | null | undefinedОдин асинхронный валидатор или массив функций асинхронных валидаторов.
FormArray<ɵElement<T, null>>
Описание
Создает AbstractControl на основе конфигурации, заданной пользователем.
FormBuilder предоставляет синтаксический сахар, упрощающий создание экземпляров FormControl, FormGroup или FormArray. Это сокращает объем шаблонного кода, необходимого для создания сложных форм.
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/FormBuilder