在ionic2(v 2.1.7
)中关闭模态窗体后如何调用方法?以下是我的工作流程
这就是我所做的
#page A
let modal = this.modalCtrl.create(NewListPage);
modal.present();
getValueFromService()
#page B
updateService()
this.viewCtrl.dismiss();
目前发生的情况是,一旦程序点击modal.present();
,它就不会等到Page B
关闭才会转到getValueFromService()
,因此,新更新的值不能是一旦我关闭模态表格就读。
答案 0 :(得分:1)
您可以使用onDidDismiss
(doc),如下所示:
// 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 A
和Page 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);