Skip to main content

ArrayNode

Defined in: core/nodes/array-node.ts:44

ArrayNode - массив Ρ„ΠΎΡ€ΠΌ с Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ состояниСм

Example​

const array = new ArrayNode({
title: { value: '', component: Input },
price: { value: 0, component: Input },
});

array.push({ title: 'Item 1', price: 100 });
array.at(0)?.title.setValue('Updated');
console.log(array.length.value); // 1

Extends​

Type Parameters​

T​

T extends FormFields

Constructors​

Constructor​

new ArrayNode<T>(schema, initialItems): ArrayNode<T>;

Defined in: core/nodes/array-node.ts:84

Parameters​

schema​

FormSchema<T>

initialItems​

Partial<T>[] = []

Returns​

ArrayNode<T>

Overrides​

FormNode.constructor

Methods​

applyBehaviorSchema()​

applyBehaviorSchema(schemaFn): void;

Defined in: core/nodes/array-node.ts:459

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ behavior schema ΠΊΠΎ всСм элСмСнтам ArrayNode

АвтоматичСски примСняСтся ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ элСмСнтам ΠΏΡ€ΠΈ push/insert.

Parameters​

schemaFn​

unknown

Behavior schema функция

Returns​

void

Example​

import { addressBehavior } from './behaviors/address-behavior';

form.addresses.applyBehaviorSchema(addressBehavior);

applyValidationSchema()​

applyValidationSchema(schemaFn): void;

Defined in: core/nodes/array-node.ts:430

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ validation schema ΠΊΠΎ всСм элСмСнтам массива

Validation schema Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ:

  • ВсСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ элСмСнтам
  • ВсСм Π½ΠΎΠ²Ρ‹ΠΌ элСмСнтам, добавляСмым Ρ‡Π΅Ρ€Π΅Π· push/insert

Parameters​

schemaFn​

unknown

Ѐункция Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ для элСмСнта массива

Returns​

void

Example​

import { propertyValidation } from './validation/property-validation';

form.properties.applyValidationSchema(propertyValidation);

at()​

at(index): any;

Defined in: core/nodes/array-node.ts:192

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт ΠΏΠΎ индСксу

Parameters​

index​

number

ИндСкс элСмСнта

Returns​

any

Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ GroupNode ΠΈΠ»ΠΈ undefined Ссли индСкс Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ†


clear()​

clear(): void;

Defined in: core/nodes/array-node.ts:183

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС элСмСнты массива

Returns​

void


clearErrors()​

clearErrors(): void;

Defined in: core/nodes/array-node.ts:292

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ошибки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ

Returns​

void

Overrides​

FormNode.clearErrors


disable()​

disable(): void;

Defined in: core/nodes/form-node.ts:370

ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»

Template Method: обновляСт статус Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ hook для кастомной Π»ΠΎΠ³ΠΈΠΊΠΈ Π² наслСдниках

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ Π½Π΅ проходят Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² getValue()

Returns​

void

Inherited from​

FormNode.disable


dispose()​

dispose(): void;

Defined in: core/nodes/array-node.ts:572

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС рСсурсы ΡƒΠ·Π»Π° РСкурсивно ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ всС subscriptions ΠΈ элСмСнты массива

Returns​

void

Example​

useEffect(() => {
return () => {
arrayNode.dispose();
};
}, []);

Overrides​

FormNode.dispose


enable()​

enable(): void;

Defined in: core/nodes/form-node.ts:381

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π»

Template Method: обновляСт статус Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ hook для кастомной Π»ΠΎΠ³ΠΈΠΊΠΈ Π² наслСдниках

Returns​

void

Inherited from​

FormNode.enable


forEach()​

forEach(callback): void;

Defined in: core/nodes/array-node.ts:344

Π˜Ρ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ элСмСнтам массива

Parameters​

callback​

(item, index) => void

Ѐункция, вызываСмая для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта с Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ GroupNode

Returns​

void


getErrors()​

getErrors(options?): ValidationError[];

Defined in: core/nodes/form-node.ts:231

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ошибки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ критСриям:

  • По ΠΊΠΎΠ΄Ρƒ ошибки
  • По ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ (частичноС совпадСниС)
  • По ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ
  • Π§Π΅Ρ€Π΅Π· кастомный ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚

Π‘Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС ошибки (эквивалСнт errors.value)

Parameters​

options?​

ErrorFilterOptions

ΠžΠΏΡ†ΠΈΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ошибок

Returns​

ValidationError[]

ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ массив ошибок Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ

Example​

// ВсС ошибки
const allErrors = form.getErrors();

// Ошибки с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
const requiredErrors = form.getErrors({ code: 'required' });

// Ошибки с нСсколькими кодами
const errors = form.getErrors({ code: ['required', 'email'] });

// Ошибки ΠΏΠΎ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ
const passwordErrors = form.getErrors({ message: 'Password' });

// Ошибки ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ
const minLengthErrors = form.getErrors({
params: { minLength: 8 }
});

// ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Π°Ρ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ
const customErrors = form.getErrors({
predicate: (err) => err.code.startsWith('custom_')
});

Inherited from​

FormNode.getErrors


getValue()​

getValue(): T[];

Defined in: core/nodes/array-node.ts:200

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° (non-reactive) Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ .peek() для получСния значСния Π±Π΅Π· создания зависимости

Returns​

T[]

Overrides​

FormNode.getValue


insert()​

insert(index, initialValue?): void;

Defined in: core/nodes/array-node.ts:164

Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² массив

Parameters​

index​

number

ИндСкс для вставки

initialValue?​

Partial<T>

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния для Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта

Returns​

void


map()​

map<R>(callback): R[];

Defined in: core/nodes/array-node.ts:355

Маппинг элСмСнтов массива

Type Parameters​

R​

R

Parameters​

callback​

(item, index) => R

Ѐункция прСобразования с Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ GroupNode

Returns​

R[]

Новый массив Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²


markAsDirty()​

markAsDirty(): void;

Defined in: core/nodes/form-node.ts:313

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π» ΠΊΠ°ΠΊ dirty (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ)

Template Method: обновляСт signal Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ hook для кастомной Π»ΠΎΠ³ΠΈΠΊΠΈ Π² наслСдниках

Returns​

void

Inherited from​

FormNode.markAsDirty


markAsPristine()​

markAsPristine(): void;

Defined in: core/nodes/form-node.ts:324

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π» ΠΊΠ°ΠΊ pristine (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ)

Template Method: обновляСт signal Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ hook для кастомной Π»ΠΎΠ³ΠΈΠΊΠΈ Π² наслСдниках

Returns​

void

Inherited from​

FormNode.markAsPristine


markAsTouched()​

markAsTouched(): void;

Defined in: core/nodes/form-node.ts:291

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π» ΠΊΠ°ΠΊ touched (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ взаимодСйствовал)

Template Method: обновляСт signal Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ hook для кастомной Π»ΠΎΠ³ΠΈΠΊΠΈ Π² наслСдниках

Returns​

void

Inherited from​

FormNode.markAsTouched


markAsUntouched()​

markAsUntouched(): void;

Defined in: core/nodes/form-node.ts:302

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡƒΠ·Π΅Π» ΠΊΠ°ΠΊ untouched

Template Method: обновляСт signal Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ hook для кастомной Π»ΠΎΠ³ΠΈΠΊΠΈ Π² наслСдниках

Returns​

void

Inherited from​

FormNode.markAsUntouched


onDisable()​

protected onDisable(): void;

Defined in: core/nodes/array-node.ts:600

Hook: вызываСтся послС disable()

Для ArrayNode: рСкурсивно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ всС элСмСнты массива

Returns​

void

Example​

// ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ вСсь массив ΠΏΠΎΠ»Π΅ΠΉ
form.items.disable();

// ВсС элСмСнты становятся disabled
form.items.forEach(item => {
console.log(item.status.value); // 'disabled'
});

Overrides​

FormNode.onDisable


onEnable()​

protected onEnable(): void;

Defined in: core/nodes/array-node.ts:622

Hook: вызываСтся послС enable()

Для ArrayNode: рСкурсивно Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ всС элСмСнты массива

Returns​

void

Example​

// Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ вСсь массив ΠΏΠΎΠ»Π΅ΠΉ
form.items.enable();

// ВсС элСмСнты становятся enabled
form.items.forEach(item => {
console.log(item.status.value); // 'valid' ΠΈΠ»ΠΈ 'invalid'
});

Overrides​

FormNode.onEnable


onMarkAsDirty()​

protected onMarkAsDirty(): void;

Defined in: core/nodes/array-node.ts:323

Hook: вызываСтся послС markAsDirty()

Для ArrayNode: рСкурсивно ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌ всС элСмСнты массива ΠΊΠ°ΠΊ dirty

Returns​

void

Overrides​

FormNode.onMarkAsDirty


onMarkAsPristine()​

protected onMarkAsPristine(): void;

Defined in: core/nodes/array-node.ts:332

Hook: вызываСтся послС markAsPristine()

Для ArrayNode: рСкурсивно ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌ всС элСмСнты массива ΠΊΠ°ΠΊ pristine

Returns​

void

Overrides​

FormNode.onMarkAsPristine


onMarkAsTouched()​

protected onMarkAsTouched(): void;

Defined in: core/nodes/array-node.ts:305

Hook: вызываСтся послС markAsTouched()

Для ArrayNode: рСкурсивно ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌ всС элСмСнты массива ΠΊΠ°ΠΊ touched

Returns​

void

Overrides​

FormNode.onMarkAsTouched


onMarkAsUntouched()​

protected onMarkAsUntouched(): void;

Defined in: core/nodes/array-node.ts:314

Hook: вызываСтся послС markAsUntouched()

Для ArrayNode: рСкурсивно ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌ всС элСмСнты массива ΠΊΠ°ΠΊ untouched

Returns​

void

Overrides​

FormNode.onMarkAsUntouched


patchValue()​

patchValue(values): void;

Defined in: core/nodes/array-node.ts:217

Частично ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° Для FieldNode: Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ setValue Для GroupNode: обновляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ поля Для ArrayNode: обновляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ элСмСнты

Parameters​

values​

(T | undefined)[]

Returns​

void

Overrides​

FormNode.patchValue


push()​

push(initialValue?): void;

Defined in: core/nodes/array-node.ts:137

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† массива

Parameters​

initialValue?​

Partial<T>

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния для Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта

Returns​

void


removeAt()​

removeAt(index): void;

Defined in: core/nodes/array-node.ts:146

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт ΠΏΠΎ индСксу

Parameters​

index​

number

ИндСкс элСмСнта для удалСния

Returns​

void


reset()​

reset(values?): void;

Defined in: core/nodes/array-node.ts:242

Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ массив ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ значСниям (ΠΈΠ»ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ)

Parameters​

values?​

T[]

ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для сброса

Returns​

void

Remarks​

ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ массив ΠΈ заполняСт Π½ΠΎΠ²Ρ‹ΠΌΠΈ элСмСнтами

Example​

// ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ массив
arrayNode.reset();

// Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ значСниям
arrayNode.reset([{ name: 'Item 1' }, { name: 'Item 2' }]);

Overrides​

FormNode.reset


resetToInitial()​

resetToInitial(): void;

Defined in: core/nodes/array-node.ts:277

Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ массив ΠΊ исходным значСниям (initialItems)

Returns​

void

Remarks​

ВосстанавливаСт массив Π² состояниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈ создании ArrayNode. Π‘ΠΎΠ»Π΅Π΅ явный способ сброса ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ значСниям ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с reset()

ПолСзно когда:

  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» "Cancel" - Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ массив ΠΊ исходным элСмСнтам
  • Массив Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Ρ‡Π΅Ρ€Π΅Π· reset(newValues), Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ
  • Π―Π²Π½ΠΎΠ΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ "ΠΎΡ‚ΠΌΠ΅Π½Π° всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ"

Example​

const arrayNode = new ArrayNode(
{ name: { value: '', component: Input } },
[{ name: 'Initial 1' }, { name: 'Initial 2' }]
);

arrayNode.push({ name: 'New Item' });
arrayNode.reset([{ name: 'Temp' }]);
console.log(arrayNode.length.value); // 1

arrayNode.resetToInitial();
console.log(arrayNode.length.value); // 2
console.log(arrayNode.at(0)?.name.value.value); // 'Initial 1'

setErrors()​

setErrors(_errors): void;

Defined in: core/nodes/array-node.ts:287

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ошибки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΈΠ·Π²Π½Π΅

Parameters​

_errors​

ValidationError[]

Returns​

void

Overrides​

FormNode.setErrors


setValue()​

setValue(values, options?): void;

Defined in: core/nodes/array-node.ts:204

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π°

Parameters​

values​

T[]

options?​

SetValueOptions

ΠΎΠΏΡ†ΠΈΠΈ установки значСния

Returns​

void

Overrides​

FormNode.setValue


touchAll()​

touchAll(): void;

Defined in: core/nodes/form-node.ts:354

ΠŸΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ всС поля (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅) ΠΊΠ°ΠΊ touched Алиас для markAsTouched(), Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ явно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π’Π‘Π• поля рСкурсивно

ПолСзно для:

  • Показа всСх ошибок Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ submit
  • ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ отобраТСния ошибок ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ "Validate All"
  • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Π² wizard/step form

Returns​

void

Example​

// ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС ошибки ΠΏΠ΅Ρ€Π΅Π΄ submit
form.touchAll();
const isValid = await form.validate();
if (!isValid) {
// ВсС ошибки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
}

// Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ submit() ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ touchAll
await form.submit(async (values) => {
await api.save(values);
});

Inherited from​

FormNode.touchAll


validate()​

validate(): Promise<boolean>;

Defined in: core/nodes/array-node.ts:282

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ ΡƒΠ·Π»Π°

Returns​

Promise<boolean>

Promise<boolean> - true Ссли валидация ΡƒΡΠΏΠ΅ΡˆΠ½Π°

Overrides​

FormNode.validate


watchItems()​

watchItems<K>(fieldKey, callback): () => void;

Defined in: core/nodes/array-node.ts:504

Подписка Π½Π° измСнСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ поля Π²ΠΎ всСх элСмСнтах массива Π‘Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния поля Π² любом элСмСнтС

Type Parameters​

K​

K extends string | number | symbol

Parameters​

fieldKey​

K

ΠšΠ»ΡŽΡ‡ поля для отслСТивания

callback​

(values) => void | Promise<void>

Ѐункция, вызываСмая ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ массив всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ индСкс ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта

Returns​

Ѐункция отписки для cleanup

(): void;
Returns​

void

Example​

// АвтоматичСский пСрСсчСт ΠΎΠ±Ρ‰Π΅ΠΉ стоимости ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ†Π΅Π½
const dispose = form.existingLoans.watchItems(
'remainingAmount',
(amounts) => {
const totalDebt = amounts.reduce((sum, amount) => sum + (amount || 0), 0);
form.totalDebt.setValue(totalDebt);
}
);

// ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ любого remainingAmount β†’ пСрСсчитаСтся totalDebt
form.existingLoans.at(0)?.remainingAmount.setValue(500000);

// Cleanup
useEffect(() => dispose, []);

watchLength()​

watchLength(callback): () => void;

Defined in: core/nodes/array-node.ts:548

Подписка Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ массива Π‘Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнтов

Parameters​

callback​

(length) => void | Promise<void>

Ѐункция, вызываСмая ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ

Returns​

Ѐункция отписки для cleanup

(): void;
Returns​

void

Example​

// ОбновлСниС счСтчика элСмСнтов Π² UI
const dispose = form.properties.watchLength((length) => {
console.log(`ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² нСдвиТимости: ${length}`);
form.propertyCount.setValue(length);
});

form.properties.push({ title: 'ΠšΠ²Π°Ρ€Ρ‚ΠΈΡ€Π°', value: 5000000 });
// Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚: "ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² нСдвиТимости: 1"

// Cleanup
useEffect(() => dispose, []);

Properties​

_dirty​

protected _dirty: Signal<boolean>;

Defined in: core/nodes/form-node.ts:56

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ (dirty) Protected: наслСдники ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ/ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Inherited from​

FormNode._dirty


_status​

protected _status: Signal<FieldStatus>;

Defined in: core/nodes/form-node.ts:62

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус ΡƒΠ·Π»Π° Protected: наслСдники ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ/ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Inherited from​

FormNode._status


_touched​

protected _touched: Signal<boolean>;

Defined in: core/nodes/form-node.ts:50

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ взаимодСйствовал с ΡƒΠ·Π»ΠΎΠΌ (touched) Protected: наслСдники ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ/ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Inherited from​

FormNode._touched


dirty​

readonly dirty: ReadonlySignal<boolean>;

Defined in: core/nodes/array-node.ts:74

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ (dirty) Computed ΠΈΠ· _dirty для прСдоставлСния readonly интСрфСйса

Overrides​

FormNode.dirty


disabled​

readonly disabled: ReadonlySignal<boolean>;

Defined in: core/nodes/form-node.ts:99

Π£Π·Π΅Π» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ (disabled)

Inherited from​

FormNode.disabled


enabled​

readonly enabled: ReadonlySignal<boolean>;

Defined in: core/nodes/form-node.ts:104

Π£Π·Π΅Π» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ (enabled)

Inherited from​

FormNode.enabled


errors​

readonly errors: ReadonlySignal<ValidationError[]>;

Defined in: core/nodes/array-node.ts:76

Массив ошибок Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ

Overrides​

FormNode.errors


invalid​

readonly invalid: ReadonlySignal<boolean>;

Defined in: core/nodes/array-node.ts:72

Π£Π·Π΅Π» Π½Π΅Π²Π°Π»ΠΈΠ΄Π΅Π½ (Π΅ΡΡ‚ΡŒ ошибки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ)

Overrides​

FormNode.invalid


length​

readonly length: ReadonlySignal<number>;

Defined in: core/nodes/array-node.ts:78


pending​

readonly pending: ReadonlySignal<boolean>;

Defined in: core/nodes/array-node.ts:75

ВыполняСтся асинхронная валидация

Overrides​

FormNode.pending


pristine​

readonly pristine: ReadonlySignal<boolean>;

Defined in: core/nodes/form-node.ts:88

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ (pristine)

Inherited from​

FormNode.pristine


status​

readonly status: ReadonlySignal<FieldStatus>;

Defined in: core/nodes/array-node.ts:77

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус ΡƒΠ·Π»Π° Computed ΠΈΠ· _status для прСдоставлСния readonly интСрфСйса

Overrides​

FormNode.status


touched​

readonly touched: ReadonlySignal<boolean>;

Defined in: core/nodes/array-node.ts:73

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ взаимодСйствовал с ΡƒΠ·Π»ΠΎΠΌ (touched) Computed ΠΈΠ· _touched для прСдоставлСния readonly интСрфСйса

Overrides​

FormNode.touched


untouched​

readonly untouched: ReadonlySignal<boolean>;

Defined in: core/nodes/form-node.ts:77

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ взаимодСйствовал с ΡƒΠ·Π»ΠΎΠΌ (untouched)

Inherited from​

FormNode.untouched


valid​

readonly valid: ReadonlySignal<boolean>;

Defined in: core/nodes/array-node.ts:71

Π£Π·Π΅Π» Π²Π°Π»ΠΈΠ΄Π΅Π½ (всС Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ)

Overrides​

FormNode.valid


value​

readonly value: ReadonlySignal<T[]>;

Defined in: core/nodes/array-node.ts:70

Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π°

  • Для FieldNode: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля
  • Для GroupNode: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ со значСниями всСх ΠΏΠΎΠ»Π΅ΠΉ
  • Для ArrayNode: массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ элСмСнтов

Overrides​

FormNode.value