退出模态对话框时,哪个生命周期方法调用了ionic

时间:2019-03-26 03:31:14

标签: angular cordova ionic-framework ionic3

我有一个来自组件A的component A,我在解散我想捕获组件A中的事件的modal dialog时正在调用模式对话框。但是看来component A中没有触发任何事件。到目前为止,我尝试使用离子生命周期方法进行日志记录。任何提示将不胜感激。

在这里,我通过this.navCtrl.pop()关闭了模式对话框

ionViewDidEnter() {
    alert("ionViewDidEnter")

  }

  ionViewWillLeave() {
    alert("ionViewWillLeave")

  }

  ionViewWillEnter() {
    alert("ionViewWillEnter")

  }

  ionViewDidLeave() {
    alert("ionViewDidLeave")

  }
  ionViewWillUnload() {
     alert("ionViewWillUnload")

  }

  ionViewDidLoad() {

    alert("ionViewDidLoad")
    }

3 个答案:

答案 0 :(得分:1)

尝试一下。

DECLARE @TABLE TABLE (v INT)
INSERT INTO @TABLE SELECT 2
INSERT INTO @TABLE SELECT 10
INSERT INTO @TABLE SELECT 20
INSERT INTO @TABLE SELECT 10

SELECT SUM(v) AS [SUM] FROM @TABLE

答案 1 :(得分:1)

创建像

这样的模态对话框后,您必须获取模态参考
let modalDialog = this.modalCtrl.create(ComponentA);

然后,您必须处理模式引用的onDidDismiss事件,如

modalDialog.onDidDismiss = ((data) => { //your action after dismiss }})

在模式对话框组件中,您必须调用dismiss之类的

this.viewCtrl.dismiss(<data you want to pass>);

有关更多参考,您可以在这里https://forum.ionicframework.com/t/ionic-3-get-data-from-modal/105959

答案 2 :(得分:0)

正如前面的答案所暗示的,父级中没有生命周期事件,因为它没有发生突变,模态出现在它的顶部,然后从中退出,而父级不受影响,但是您可以从内部触发dismiss函数。父母与您的父母交谈。

对于Ionic 4和5,您可以在模态组件TS内部的dismiss函数中声明属性,例如:

this.modal.dismiss({
    category_selected: this.exampleVariable
});

然后在您的父级上,您可以使用then指定onDidDismiss承诺,即:

modal.onDidDismiss().then((data) => {
    console.log(data);
    // { category_selected: foo }
});