Skip to main content

ModelApi

Defined in: model/types.ts:248

API уровня модели (доступно на корне, под-моделях вложенных объектов-групп и элементов массива).

⚠️ Имена методов ($/get/set/patch/isDirty/reset/signalAt/captureInitial) зарезервированы: одноимённое поле формы их затеняет (редкий краевой случай).

Type Parameters​

T​

T

Methods​

captureInitial()​

captureInitial(): void;

Defined in: model/types.ts:289

Зафиксировать текущие значения как новый initial-снимок («точка отсчёта»). К нему возвращают и model.reset(), и form.reset().

Returns​

void


get()​

get(): T;

Defined in: model/types.ts:255

Снимок значений (без подписки) — для submit.

Returns​

T


isDirty()​

isDirty(): boolean;

Defined in: model/types.ts:276

Отличаются ли текущие значения от initial-снимка (value-diff). Производные поля — цели compute / computeFrom и поля с markDerived — не в счёт: их пишет поведение, а не пользователь, и форма без единой правки изменённой не считается.

Returns​

boolean


patch()​

patch(value): void;

Defined in: model/types.ts:270

Частичное слияние значений (load/patch с сервера): обновляет только переданные ключи, отсутствующие ключи НЕ трогаются. Вложенные группы сливаются так же, массив заменяется целиком. Не меняет initial-снимок.

Parameters​

value​

DeepPartial<T>

Returns​

void


reset()​

reset(): void;

Defined in: model/types.ts:284

Сбросить значения к initial-снимку. Производные поля сброс не пишет, как set и patch: цель compute пересчитает поведение, когда вернутся её источники.

Ноды формы не трогает: замечания погаснут при следующей проверке. Сброс для пользователя — form.reset(): та же точка отсчёта и чистые ноды.

Returns​

void


set()​

set(value): void;

Defined in: model/types.ts:264

Полная установка значений: принимает объект целиком (все ключи T) и записывает их в модель. Производными полями (цели compute) владеет compute — их значения из payload игнорируются. Не меняет initial-снимок. Для частичного обновления (только переданные ключи) — ModelApi.patch.

Если в объекте не хватает ключей (значение пришло без типа — например, с сервера), эти поля остаются прежними, а в dev выводится предупреждение со списком.

Parameters​

value​

T

Returns​

void


signalAt()​

signalAt(path): 
| PathAwareSignal<unknown>
| undefined;

Defined in: model/types.ts:294

Резолв строкового пути в сигнал (для error-routing/мостов): лист либо массив целиком (ручка значения массива — см. ModelArraySignals). Для пути группы — undefined.

Parameters​

path​

string

Returns​

| PathAwareSignal<unknown> | undefined

Properties​

$

readonly $: ModelGroupSignals<T>;

Defined in: model/types.ts:253

Escape-hatch к сигналам: model.$.loanType → PathAwareSignal<LoanType>. Сам узел — ReadonlySignal модели целиком: model.$.subscribe(v => …).