Модальная форма Init / Re Render

Я пытаюсь реализовать модальные формы в своем проекте.

В ссылке, если я нажму первую кнопку (Hello2), введите что-нибудь в поле ввода и затем закройте модальный. Когда я снова нажимаю первую кнопку, все остается как в первый раз (потому что модальная страница не инициализирована). Если я нажму вторую кнопку (образец ngOnInit), все будет работать так, как я ожидал.

Но если вы отметите app.component.html во втором примере, почти большая часть кода написана на app.component.html. Я хочу использовать, как в первом примере (<hello2 #hello2Comp name="{{ name }}"></hello2>), но ожидаю, что он будет работать как второй образец. Повторно инициализируйте мою форму в каждой открытой/показной форме.


person Enes Köroğlu    schedule 01.06.2018    source источник


Ответы (1)


В модели Hello2 при нажатии кнопки закрытия вы удаляете только модальное тело, поэтому input1Modelвсе еще удерживает ввод, который вы предоставили, и поэтому он отображается всякий раз, когда вы визуализируете модальное тело.

Но в другом случае каждый раз, когда HelloComponent инициализируется, input1Model в HelloComponent также инициализируется.

Поэтому, если вы хотите сбросить в Hello2Component, просто сбросьте эту переменную в методе hideModal() как this.input1Model = null. В случае формы вы можете вызвать блок инициализации формы.

Другой подход (как указано в комментарии) Edited_link

person Gopu.S    schedule 01.06.2018
comment
Я хочу инициализировать Hello2Component как HelloComponent. Я не пытаюсь установить один вход. У меня так много ввода, выпадающего списка и т. д. в моей форме, и невозможно установить для всех их значение null, а установки значения недостаточно. Как побочный эффект form validation state не инициализируется, поэтому я хочу initiliazie Hello2Component. - person Enes Köroğlu; 01.06.2018
comment
Вы можете удалить и отобразить Hello2Component, вернув closeEvent и используя жизненный крючок ngAfterViewChecked для отображения модального окна. Добавление кода в ответ выше - person Gopu.S; 02.06.2018
comment
Да это оно. Спасибо - person Enes Köroğlu; 05.06.2018