模态表单关闭时的回调

时间:2016-11-13 13:03:14

标签: angular typescript ionic2

在ionic2(v 2.1.7)中关闭模态窗体后如何调用方法?以下是我的工作流程

  • 用户加载页面(第A页)
  • 然后点击按钮打开模态表格(第B页)
  • 添加一些细节(这将更新服务)
  • 关闭模态表格(第B页)
  • 现在我想向页面A添加一个回调并从中读取新值 服务

这就是我所做的

#page A
let modal = this.modalCtrl.create(NewListPage);
modal.present();
getValueFromService() 

#page B
updateService()
this.viewCtrl.dismiss(); 

目前发生的情况是,一旦程序点击modal.present();,它就不会等到Page B关闭才会转到getValueFromService(),因此,新更新的值不能是一旦我关闭模态表格就读。

1 个答案:

答案 0 :(得分:1)

您可以使用onDidDismissdoc),如下所示:

 // Page A
 presentModal() {
   let modal = this.modalCtrl.create(NewListPage);

   modal.onDidDismiss(() => {
     // This is going to be executed when the modal is closed, so
     // you can read the value from the service here
     getValueFromService();
   });

   modal.present();
 }

然后就像你说的那样

// Page B
updateService();
this.viewCtrl.dismiss();

另请注意,您可以在Page APage B之间发送数据,因此您甚至可以避免使用服务(如果您只是为了发送数据而执行此操作)并且只是发送这样的数据:

 // Page A
 presentModal() {
   let modal = this.modalCtrl.create(NewListPage);

   modal.onDidDismiss(dataFromModal => {
     // You can use the data here
     console.log(dataFromModal.foo);
   });

   modal.present();
 }

在第B页

// Page B
// Instead of calling the service, you can send the data to the caller
let data = { 'foo': 'bar' };
this.viewCtrl.dismiss(data);