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 => …).