как сохранить состояние ввода ngb-accordion при крахе

Можно ли сохранить состояние (введенный текст) ввода при сворачивании ngb-аккордеона?

Вот пример: https://stackblitz.com/edit/angular-ukshlz-wz6st8?file=app/accordion-basic.html

Если вы вводите какой-либо текст в поле ввода и сворачиваете/разворачиваете первую панель, то ввод теряет ее содержимое.


person tillias    schedule 12.10.2020    source источник


Ответы (1)


просто используйте переменную и ngModel

myinput:any; //in your .ts

<input [(ngModel)]="myinput">  //your .html make use of the variable

Обновлено от @tilias

если вы используете сложную структуру компонентов, другой возможностью является установка destroyOnHide в false

<ngb-accordion [destroyOnHide]="false">

Это предотвратит уничтожение компонента, который содержит ваш ввод и его привязку: см. документы

пока я обновлял ответ, Тилиас нашел правильное решение: удалить мое обновление

person Eliseo    schedule 13.10.2020
comment
Мой случай более сложный: dropbox.com/s/ v3kmxzmy26crnks/input-lose-text.gif?dl=0 Если других предложений не будет, я отмечу ваш ответ как правильный. У меня уже есть привязка в пользовательском компоненте, но кажется, что когда панель свернута, компонент уничтожается - person tillias; 13.10.2020
comment
Элисео, я обновил ваш комментарий для второго варианта использования. Я также проверил это, и действительно, причиной был destroyOnHide. Как только кто-нибудь одобрит мою правку, я приму ее как ответ. Большое спасибо за то, что указали мне правильное направление! - person tillias; 13.10.2020
comment
Я боюсь, что вам нужно использовать ngOnDestroy для хранения переменных в службе (или в родительском) и ngOnInit для присвоения значения вашим переменным (я обновил ответ) - person Eliseo; 13.10.2020