Spec-Zone.ru › Angular

FieldState

Доступное для записи представление состояния FieldTree.

API

interface FieldState<TValue, TKey extends string | number = string | number> extends ReadonlyFieldState<TValue, TKey> {
  readonly fieldTree: FieldTree<unknown, TKey, "writable">;
  readonly value: WritableSignal<TValue>;
  readonly controlValue: WritableSignal<TValue>;
  markAsDirty(): void;
  markAsTouched(options?: MarkAsTouchedOptions | undefined): void;
  getError<K extends NgValidationError['kind']>(kind: K): ((Extract<RequiredValidationError, { kind: K; }> | Extract<MinValidationError, { kind: K; }> | Extract<MinDateValidationError, { kind: K; }> | Extract<MaxValidationError, { kind: K; }> | Extract<MaxDateValidationError, { kind: K; }> | Extract<MinLengthValidationError, { kind: K; }> | Extract<MaxLengthValidationError, { kind: K; }> | Extract<PatternValidationError, { kind: K; }> | Extract<EmailValidationError, { kind: K; }> | Extract<StandardSchemaValidationError, { kind: K; }> | Extract<NativeInputParseError, { kind: K; }>) & WithFieldTree) | undefined;
  getError(kind: string): WithFieldTree | undefined;
  reset(value?: TValue | undefined): void;
  reloadValidation(): void;
  readonly override disabled: Signal<boolean>;
  readonly override max: Signal<NonNullable<TValue> | undefined> | undefined;
  readonly override maxLength: Signal<number | undefined> | undefined;
  readonly override min: Signal<NonNullable<TValue> | undefined> | undefined;
  readonly override minLength: Signal<number | undefined> | undefined;
  readonly override name: Signal<string>;
  readonly override pattern: Signal<readonly RegExp[]>;
  readonly override readonly: Signal<boolean>;
  readonly override required: Signal<boolean>;
  readonly override touched: Signal<boolean>;
  readonly override dirty: Signal<boolean>;
  readonly override hidden: Signal<boolean>;
  readonly override disabledReasons: Signal<readonly DisabledReason[]>;
  readonly override errors: Signal<WithFieldTree[]>;
  readonly override errorSummary: Signal<WithFieldTree[]>;
  readonly override valid: Signal<boolean>;
  readonly override invalid: Signal<boolean>;
  readonly override pending: Signal<boolean>;
  readonly override submitting: Signal<boolean>;
  readonly override keyInParent: Signal<TKey>;
  readonly override formFieldBindings: Signal<readonly FormFieldBinding[]>;
  override metadata<M>(key: MetadataKey<M, any, any>): M | undefined;
  override hasMetadata(key: MetadataKey<any, any, any>): boolean;
  override focusBoundControl(options?: FocusOptions | undefined): void;
}

fieldTree

FieldTree<unknown, TKey, "writable">

FieldTree, связанное с этим состоянием поля.

value

WritableSignal<TValue>

Записываемый сигнал, содержащий значение этого поля.

Обновление этого сигнала обновит модель данных, с которой связано поле.

Изменения из элемента управления пользовательского интерфейса в конечном итоге отразятся здесь, но могут быть отложены при использовании задержки обновления.

controlValue

WritableSignal<TValue>

Сигнал, содержащий значение элемента управления, с которым связано это поле.

Он отличается от value тем, что для него не применяется задержка обновления, поэтому он используется для буферизации отложенных обновлений элемента управления для поля. При этом также не учитывается controlValue дочерних элементов.

markAsDirty

void

Устанавливает для поля статус изменения true.

@returnsvoid

markAsTouched

void

Устанавливает для поля и его потомков статус взаимодействия true.

@paramoptionsMarkAsTouchedOptions | undefined

Параметры для отметки поля как затронутого.

@returnsvoid

getError

((Extract<RequiredValidationError, { kind: K; }> | Extract<MinValidationError, { kind: K; }> | Extract<MinDateValidationError, { kind: K; }> | Extract<MaxValidationError, { kind: K; }> | Extract<MaxDateValidationError, { kind: K; }> | Extract<MinLengthValidationError, { kind: K; }> | Extract<MaxLengthValidationError, { kind: K; }> | Extract<PatternValidationError, { kind: K; }> | Extract<EmailValidationError, { kind: K; }> | Extract<StandardSchemaValidationError, { kind: K; }> | Extract<NativeInputParseError, { kind: K; }>) & WithFieldTree) | undefined

Возвращает первую ошибку проверки указанного типа для этого поля.

Этот метод реактивен и повторно вычисляется при изменении ошибок поля, если вызван в реактивном контексте (например, в computed или effect).

@paramkindK

Тип ошибки (например, 'required', 'min').

@returns((Extract<RequiredValidationError, { kind: K; }> | Extract<MinValidationError, { kind: K; }> | Extract<MinDateValidationError, { kind: K; }> | Extract<MaxValidationError, { kind: K; }> | Extract<MaxDateValidationError, { kind: K; }> | Extract<MinLengthValidationError, { kind: K; }> | Extract<MaxLengthValidationError, { kind: K; }> | Extract<PatternValidationError, { kind: K; }> | Extract<EmailValidationError, { kind: K; }> | Extract<StandardSchemaValidationError, { kind: K; }> | Extract<NativeInputParseError, { kind: K; }>) & WithFieldTree) | undefined

Первая подходящая ошибка или undefined, если ошибок нет.

getError

WithFieldTree | undefined
@paramkindstring
@returnsWithFieldTree | undefined

reset

void

Сбрасывает состояния touched и dirty поля и его потомков.

Обратите внимание: эта операция не изменяет модель данных; при необходимости её можно сбросить напрямую.

@paramvalueTValue | undefined

Необязательное значение, которое нужно задать для формы. Если оно не указано, значение не изменится.

@returnsvoid

reloadValidation

void

Повторно запускает все асинхронные проверки для этого поля и его потомков.

@returnsvoid

disabled

Signal<boolean>

Сигнал, указывающий, отключено ли поле в данный момент.

max

Signal<NonNullable<TValue> | undefined> | undefined

Сигнал, указывающий максимальное значение поля, если оно применимо.

Применяется к <input> с числовым или датовым атрибутом type и к пользовательским элементам управления.

maxLength

Signal<number | undefined> | undefined

Сигнал, указывающий максимальную длину строки поля, если она применима.

Применяется к <input>, <textarea> и пользовательским элементам управления.

min

Signal<NonNullable<TValue> | undefined> | undefined

Сигнал, указывающий минимальное значение поля, если оно применимо.

Применяется к <input> с числовым или датовым атрибутом type и к пользовательским элементам управления.

minLength

Signal<number | undefined> | undefined

Сигнал, указывающий минимальную длину строки поля, если она применима.

Применяется к <input>, <textarea> и пользовательским элементам управления.

name

Signal<string>

Сигнал с уникальным именем поля, по умолчанию основанным на имени родительского поля.

pattern

Signal<readonly RegExp[]>

Сигнал, указывающий шаблоны, которым должно соответствовать поле.

readonly

Signal<boolean>

Сигнал, указывающий, доступно ли поле только для чтения в данный момент.

required

Signal<boolean>

Сигнал, указывающий, является ли поле обязательным.

touched

Signal<boolean>

Сигнал, указывающий, взаимодействовал ли пользователь с полем.

dirty

Signal<boolean>

Сигнал, указывающий, изменил ли пользователь значение поля.

hidden

Signal<boolean>

Сигнал, указывающий, скрыто ли поле.

Если поле скрыто, оно не учитывается при определении состояний валидности, взаимодействия и изменения.

Примечание: это не скрывает поле в шаблоне — это необходимо сделать вручную.

@if (!field.hidden()) {
  ...
}

disabledReasons

Signal<readonly DisabledReason[]>

errors

Signal<WithFieldTree[]>

errorSummary

Signal<WithFieldTree[]>

Сигнал, содержащий errors поля и его потомков.

valid

Signal<boolean>

Сигнал, указывающий, является ли значение поля допустимым в данный момент.

Примечание: valid() — это не то же самое, что !invalid().

  • valid() имеет значение true, если ошибок проверки нет и нет ожидающих завершения проверок.
  • invalid() имеет значение true, если есть ошибки проверки, независимо от наличия ожидающих завершения проверок.

Например, рассмотрим ситуацию, когда у поля есть 3 проверки: 2 из них не выявили ошибок, а 1 ещё выполняется. В этом случае valid() имеет значение false из-за ожидающей проверки. Однако invalid() также имеет значение false, поскольку ошибок нет.

invalid

Signal<boolean>

Сигнал, указывающий, является ли значение поля недопустимым в данный момент.

Примечание: invalid() — это не то же самое, что !valid().

  • invalid() имеет значение true, если есть ошибки проверки, независимо от наличия ожидающих завершения проверок.
  • valid() имеет значение true, если ошибок проверки нет и нет ожидающих завершения проверок.

Например, рассмотрим ситуацию, когда у поля есть 3 проверки: 2 из них не выявили ошибок, а 1 ещё выполняется. В этом случае invalid() имеет значение false, поскольку ошибок нет. Однако valid() также имеет значение false из-за ожидающей проверки.

pending

Signal<boolean>

Есть ли проверки этого поля, выполнение которых ещё не завершено.

submitting

Signal<boolean>

Сигнал, указывающий, отправляется ли поле в данный момент.

keyInParent

Signal<TKey>

Ключ свойства в родительском поле, по которому хранится это поле. Например, если родительское поле содержит массив, это индекс данного поля в массиве.

formFieldBindings

Signal<readonly FormFieldBinding[]>

Директивы FormField, связывающие это поле с элементом управления пользовательского интерфейса.

metadata

M | undefined

Читает значение метаданных поля.

@paramkeyMetadataKey<M, any, any>

Ключ метаданных для чтения.

@returnsM | undefined

hasMetadata

boolean

Проверяет, существует ли у поля значение метаданных.

@paramkeyMetadataKey<any, any, any>

Ключ метаданных для проверки.

@returnsboolean

focusBoundControl

void

Переводит фокус на первый элемент управления пользовательского интерфейса в DOM, связанный с этим состоянием поля. Если таких элементов нет, ничего не делает.

@paramoptionsFocusOptions | undefined

Необязательные параметры фокуса, передаваемые нативному методу focus().

@returnsvoid

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/signals/FieldState

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API