➜ npm ls @prizm-ui/components
@prizm-ui/components 5.0.0
@angular/core 18.2.2
Скрин / Видео проблемы
Воспроизведение проблемы
Нестабильно. При поздней инициализации значения инпутов (empty -> some value) положение лейблов не меняется
На проекте используется сетап:
input() -> effect(() => updateForm(input())) => FormGroup.reset(some_val)
Так же удалось воспроизвести проблему при обновлении значения через control.setValue(..., { emitEvent: false}), или при использовании инпута без NG_CONTROL директив (в этом случае также наблюдается проблема с некорреткным обновлением состояния empty и отображением кнопки очистки - воспроизводится на демо сайте поголовно во всех примерах с <input prizmInput> без formControl/ngModel диреткив
Описание проблемы
Имеет место быть рассинхронизация состояния PrizmInputLayoutComponent с PrizmInputTextComponent.
А именно:
Как видно значение в контексте PrizmLetDirective из PrizmInputLayout имеет не корреткное значение (источником выступает как раз control.empty
Удалось выяснить что проблема в невыполненном цикле CD на уровне лейаута при обновлении control.empty через afterRender - предполагаю, необходимо вызывать control.stateChanges.next() при изменении значения control.empty
Создал PR с обновлением и оптимизацией работы с empty и еще парой моментов - https://github.com/zyfra/Prizm/pull/2079
Позже добавлю подробное описание изменений
Библиотека
Выберите нужное отметив галочку [x]
@prizm-ui/core
@prizm-ui/components
@prizm-ui/install
@prizm-ui/icons
@prizm-ui/flag-icons
@prizm-ui/theme
@prizm-ui/charts
@prizm-ui/ast
@prizm-ui/nx-plugin
Компонент
PrizmInputTextComponent
Версия
Скрин / Видео проблемы
Воспроизведение проблемы
Нестабильно. При поздней инициализации значения инпутов (empty -> some value) положение лейблов не меняется На проекте используется сетап:
input()
->effect(() => updateForm(input()))
=>FormGroup.reset(some_val)
Так же удалось воспроизвести проблему при обновлении значения через
control.setValue(..., { emitEvent: false})
, или при использовании инпута безNG_CONTROL
директив (в этом случае также наблюдается проблема с некорреткным обновлением состоянияempty
и отображением кнопки очистки - воспроизводится на демо сайте поголовно во всех примерах с<input prizmInput>
безformControl
/ngModel
диреткивОписание проблемы
Имеет место быть рассинхронизация состояния
PrizmInputLayoutComponent
сPrizmInputTextComponent
. А именно:Как видно значение в контексте
PrizmLetDirective
изPrizmInputLayout
имеет не корреткное значение (источником выступает как разcontrol.empty
Удалось выяснить что проблема в невыполненном цикле CD на уровне лейаута при обновлении
control.empty
черезafterRender
- предполагаю, необходимо вызыватьcontrol.stateChanges.next()
при изменении значенияcontrol.empty