режим открытия и закрытия в Ionic2

#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. Привет, ты нашел какое-нибудь решение для этого?