Перейти к основному содержимому

FormObserver

Defined in: core/utils/form-observer.ts:105

FormObserver - мониторинг изменений в форме

Полезен для:

  • Отладки сложных форм
  • Логирования изменений для аудита
  • Синхронизации с внешними системами

Example

const observer = new FormObserver(form, {
enableLogging: true,
eventTypes: ['value', 'errors']
});

// Подписка на события
const unsubscribe = observer.subscribe((event) => {
console.log(`${event.type} at ${event.path}:`, event.newValue);
});

// Включить трассировку
const disposeTracing = observer.enableTracing();

// Cleanup
unsubscribe();
disposeTracing();

Type Parameters

T

T extends FormFields

Constructors

Constructor

new FormObserver<T>(form, options?): FormObserver<T>;

Defined in: core/utils/form-observer.ts:114

Parameters

form

ObservableForm<T>

Форма для наблюдения

options?

FormObserverOptions

Опции observer

Returns

FormObserver<T>

Methods

dispose()

dispose(): void;

Defined in: core/utils/form-observer.ts:384

Очистить все подписки и disposers

Returns

void


enableTracing()

enableTracing(): () => void;

Defined in: core/utils/form-observer.ts:161

Включить трассировку формы

Подписывается на изменения основных сигналов формы и вызывает listeners при каждом изменении

Returns

Функция для отключения трассировки

() => void

Example

const dispose = observer.enableTracing();

// Позже, для отключения
dispose();

subscribe()

subscribe(callback): () => void;

Defined in: core/utils/form-observer.ts:140

Подписаться на события изменения

Parameters

callback

FormChangeCallback

Функция обработки события

Returns

Функция отписки

() => void

Example

const unsubscribe = observer.subscribe((event) => {
// Отправить событие в analytics
analytics.track('form_change', event);
});

watchField()

watchField(path): () => void;

Defined in: core/utils/form-observer.ts:276

Наблюдать за конкретным полем

Parameters

path

string

Путь к полю

Returns

Функция для отключения наблюдения

() => void

Example

// Наблюдать за полем email
const dispose = observer.watchField('email');