Skip to main content

BehaviorRegistry

Defined in: core/behavior/behavior-registry.ts:46

Реестр behaviors для формы

Каждый экземпляр GroupNode создает собственный реестр (композиция). Устраняет race conditions и изолирует формы друг от друга.

Наследует AbstractRegistry для унификации:

  • Управления global stack
  • Template methods begin/end registration

Example

class GroupNode {
private readonly behaviorRegistry = new BehaviorRegistry();

applyBehaviorSchema(schemaFn) {
this.behaviorRegistry.beginRegistration(); // Pushes this to stack
schemaFn(createBehaviorFieldPath(this)); // Uses getCurrent()
return this.behaviorRegistry.endRegistration(this); // Pops from stack
}
}

Extends

Constructors

Constructor

new BehaviorRegistry(): BehaviorRegistry;

Returns

BehaviorRegistry

Inherited from

AbstractRegistry.constructor

Methods

beginRegistration()

beginRegistration(): void;

Defined in: core/utils/abstract-registry.ts:92

Начать регистрацию

Помещает this в global stack для изоляции форм Вызывает hook onBeginRegistration()

Returns

void

Inherited from

AbstractRegistry.beginRegistration


cancelRegistration()

cancelRegistration(registryName): void;

Defined in: core/utils/abstract-registry.ts:143

Отменить регистрацию без применения

Parameters

registryName

string

Имя реестра для отладки

Returns

void

Inherited from

AbstractRegistry.cancelRegistration


completeRegistration()

protected completeRegistration(registryName): void;

Defined in: core/utils/abstract-registry.ts:130

Завершить регистрацию и извлечь из стека

Parameters

registryName

string

Имя реестра для отладки

Returns

void

Inherited from

AbstractRegistry.completeRegistration


endRegistration()

endRegistration<T>(form): object;

Defined in: core/behavior/behavior-registry.ts:103

Завершить регистрацию и применить behaviors к форме Создает effect подписки для всех зарегистрированных behaviors

Type Parameters

T

T extends FormFields

Parameters

form

GroupNode<T>

GroupNode формы

Returns

object

Количество зарегистрированных behaviors и функция cleanup

cleanup
cleanup: () => void;
Returns

void

count
count: number;

getCurrent()

static getCurrent(): BehaviorRegistry | null;

Defined in: core/behavior/behavior-registry.ts:63

Получить текущий активный реестр из context stack

Returns

BehaviorRegistry | null

Текущий активный реестр или null

Example

// В schema-behaviors.ts
export function copyFrom(...) {
const registry = BehaviorRegistry.getCurrent();
if (registry) {
registry.register({ ... });
}
}

getCurrentFromStack()

protected static getCurrentFromStack<T>(ctor): T | null;

Defined in: core/utils/abstract-registry.ts:79

Получить текущий активный реестр из стека Должен быть переопределен в наследниках как static метод

Type Parameters

T

T extends AbstractRegistry<any>

Parameters

ctor

(...args) => T

Конструктор класса реестра

Returns

T | null

Текущий активный реестр или null

Inherited from

AbstractRegistry.getCurrentFromStack


getRegistrations()

getRegistrations(): RegisteredBehavior[];

Defined in: core/utils/abstract-registry.ts:113

Получить зарегистрированные элементы

Returns

RegisteredBehavior[]

Inherited from

AbstractRegistry.getRegistrations


getStack()

protected static getStack<T>(ctor): RegistryStack<T>;

Defined in: core/utils/abstract-registry.ts:61

Получить стек для конкретного класса реестра Создает новый стек если не существует

Type Parameters

T

T extends AbstractRegistry<any>

Parameters

ctor

(...args) => T

Конструктор класса реестра

Returns

RegistryStack<T>

RegistryStack для данного класса

Inherited from

AbstractRegistry.getStack


isActive()

isActive(): boolean;

Defined in: core/utils/abstract-registry.ts:106

Проверить, активна ли регистрация

Returns

boolean

Inherited from

AbstractRegistry.isActive


onBeginRegistration()

protected onBeginRegistration(): void;

Defined in: core/utils/abstract-registry.ts:121

Hook: вызывается в начале регистрации Может быть переопределен в наследниках для инициализации

Returns

void

Inherited from

AbstractRegistry.onBeginRegistration


register()

register<T>(handler, options?): void;

Defined in: core/behavior/behavior-registry.ts:80

Зарегистрировать behavior handler Вызывается функциями из schema-behaviors.ts

Type Parameters

T

T extends FormFields

Parameters

handler

BehaviorHandlerFn<T>

BehaviorHandlerFn функция

options?

BehaviorOptions

Опции behavior (debounce)

Returns

void

Example

const handler = createCopyBehavior(target, source, { when: ... });
registry.register(handler, { debounce: 300 });

Properties

isRegistering

protected isRegistering: boolean = false;

Defined in: core/utils/abstract-registry.ts:48

Флаг активной регистрации

Inherited from

AbstractRegistry.isRegistering


registrations

protected registrations: RegisteredBehavior[] = [];

Defined in: core/utils/abstract-registry.ts:51

Массив зарегистрированных элементов

Inherited from

AbstractRegistry.registrations