#angular #ionic-framework #ionic2
#angular #ionic-framework #ionic2
Вопрос:
Я имитирую чат с ionic2, и я хочу открыть модальный (страницу чата), иметь возможность закрыть его и снова открыть тот же модальный (с предыдущими сообщениями, которые были до закрытия модального).
Это то, что я сделал (я удалил шаблонный код):
homepage.html
<ion-col><ion-icon name="chatbubbles" (click)="presentChatModal()"></ion-icon></ion-col>
Когда я нажимаю на этот значок (в homepage.html ) который должен открыть мой модальный, я вызываю этот метод внутри homepage.ts
presentChatModal() {
this.chatModal = this.modalCtrl.create(ModalPage, {param: this.chats});
this.ModalPage.onDidDismiss(data => {
console.log("messages: " data);
});
this.chatModal.present();
}
modal.html
<button (click)="dismiss()">CLOSE</button>
modal.ts
constructor(private navCtrl: NavController, private navParams: NavParams, private viewCtrl: ViewController) {
this.chats = navParams.get('param');
}
dismiss() {
this.viewCtrl.dismiss(this.chats);
}
Это моя проблема: я могу открыть модальное, написать сообщения и закрыть модальное; но если я открою модальное, закрою его, снова открою и снова закрою, когда я открываю модальное в третий раз, я вижу одно и то же сообщение 3 раза. Я думаю, это потому, что я создаю новый модал каждый раз, когда пытаюсь его открыть presentChatModal
.
Можно ли уничтожить модальный, чтобы каждый раз, когда я звоню presentChatModal
, я был уверен, что другие MyModalPage
объекты не существуют? Если нет, то как мне решить эту проблему?
Комментарии:
1. Что, если вы поместите первую строку presentChatModal вне функции?
2. Можете ли вы добавить код, в котором вы добавляете сообщения в чат? Я действительно не понимаю проблему без этого.
3. @Lucio Если я попытаюсь поместить this.chatModal = this.modalCtrl.create(ModalPage, {param: this.chats}); внутри конструктора (я уже пробовал) Я получаю эту ошибку: попытка использовать уничтоженный вид: обнаруживаются изменения при попытке открытия после одного закрытия
4. Привет, ты нашел какое-нибудь решение для этого?