Skip to main content

SchemaArrayNode

Defined in: form/types/schema-node.ts:151

Массив под-форм: у каждой строки своя форма, разметку строки строит item.

Example​

{ model: model.$.phones, component: FieldArray, item: (row) => ({ children: [...] }) }

Extends​

  • SchemaNodeBase

Properties​

array?​

optional array: undefined;

Defined in: form/types/schema-node.ts:114

Прежний ключ привязки массива — его нет: пишите model: model.$.<массив> вместе с item.

Inherited from​

SchemaNodeBase.array

children?​

optional children: undefined;

Defined in: form/types/schema-node.ts:166


component?​

optional component: ComponentRef;

Defined in: form/types/schema-node.ts:98

UI-компонент либо нативный HTML-тег ('div', 'p', 'h3') для презентационной вёрстки прямо в схеме. Опционален: ядро работает без UI и component не интерпретирует — он доезжает до рендерера как есть.

Inherited from​

SchemaNodeBase.component

componentProps?​

optional componentProps: Record<string, unknown>;

Defined in: form/types/schema-node.ts:103

Пропсы компонента. Вложенных узлов здесь нет: обход схемы в пропсы не заглядывает, дети узла пишутся в children.

Inherited from​

SchemaNodeBase.componentProps

initialValue?​

optional initialValue: unknown;

Defined in: form/types/schema-node.ts:164

Шаблон нового элемента массива для кнопки «Добавить»: либо готовое значение, либо фабрика () => value. Запасной путь — для форм, чья модель создаётся из данных без кода: шаблон, объявленный в модели (arrayOf(blank)), главнее.

Тип не различает варианты (union unknown | (() => unknown) схлопывается в unknown) — рантайм различает по typeof initialValue === 'function'.


item()​

item: (model) => FormSchemaNode;

Defined in: form/types/schema-node.ts:155

Схема строки: под-модель строки → узел поддерева.

Parameters​

model​

any

Returns​

FormSchemaNode


model​

model: SchemaArrayHandle;

Defined in: form/types/schema-node.ts:153

Привязка — ручка массива model.$.<массив>.


part?​

optional part: undefined;

Defined in: form/types/schema-node.ts:165


selector?​

optional selector: string;

Defined in: form/types/schema-node.ts:105

Идентификатор узла: по нему узел адресуют поведение (schema.node(...)) и шаги визарда.

Inherited from​

SchemaNodeBase.selector

value?​

optional value: undefined;

Defined in: form/types/schema-node.ts:112

Прежний ключ привязки поля — его нет: пишите model: model.$.<поле>.

Запрет объявлен явно: в children узел стоит в объединении с реактивным текстом (Signal, у которого есть value), и без него прежний ключ проходил проверку лишних ключей.

Inherited from​

SchemaNodeBase.value