Как передать данные по клику на задний план для получения функции обратного вызова onDidDismiss?Ионная 3 Угловая 6 - PullRequest
0 голосов
/ 29 марта 2019

Как я могу передать данные модалу onDidDismiss, нажав на фон модала?

1 Ответ

0 голосов
/ 29 марта 2019

После некоторых исследований я не могу найти ответ на вопрос названия.Поэтому я опубликую здесь, как я решил эту проблему и получил данные модала о функции onDidDismiss на странице инициатора модала:

На странице вызывающего абонента:


@IonicPage()
@Component({...})
export class ExamplePage {

  constructor(...){...}

  private _showModal() {

    let modal = this._modalCtrl.create(
      'ModalPage',
      {...},
      {
        showBackdrop: true,
        enableBackdropDismiss: false,
      });
    modal.present();

    modal.onDidDismiss((res)=>{
      console.log("_showModal.modal.onDidDismiss: ", res);
    });

  }

}

А на странице модала:



@IonicPage()
@Component({...})
export class ModalPage{

  constructor(...){...}

  ionViewDidLoad() {
    let _modal = this._elRef.nativeElement;

    while (_modal.tagName != "ION-MODAL") {
      _modal = _modal.parentNode;
    }

    let _unlistenBackdrop = this._renderer.listen(_modal.querySelector('ion-backdrop'), "click", e=>{
      this._dismiss();
    });

  }

  private _dismiss(){
    let obj = {};

    // ... feed the object with whatever you need;

    obj = {test: true};

    this._viewCtrl.dismiss(obj);
  }

}

Надеюсь помочь тому или иному кодеру, пришедшему сюда с таким же сомнением.:)

Если кто-то знает лучший способ достичь того же результата, пожалуйста, опубликуйте его в ответе ниже.; D

Спасибо!

...