モーダルがいつ閉じられたかを知る必要があります。 ionViewDidLeaveなどと同じようにこれを行う明示的な方法はないようです。 ionViewDidLeaveを試しましたが、navControllerを使用してそのページに移動していないため、モーダルクローズでは機能しないと感じました。モーダルを使用してページを表示しています。
home.ts
/*show modal with post form on add event page */
postEvent(){
let modal = this.modalCtrl.create(AddEvent);
modal.present();
}
AddEvent.TS
/* Close modal and go back to feed */
close(){
this.viewCtrl.dismiss();
//I need to change a value on the home page when this dismiss happens.
}
あなたはただあなたのhome.tsでモーダルクローズイベントを聞く必要があります
// listen for close event after opening the modal
postEvent(){
let modal = this.modalCtrl.create(AddEvent);
modal.onDidDismiss(() => {
// Call the method to do whatever in your home.ts
console.log('Modal closed');
});
modal.present();
}
`
あなたはただするだろう
// home.ts
// -------
postEvent() {
let modal = this.modalCtrl.create(AddEvent);
modal.onDidDismiss(data => {
// Do stuff with the data you closed the modal out with
// or do whatever else you need to.
});
modal.present();
}
これは docs にあります。
この質問はIonic 4がリリースされる前に尋ねられますが、これは最近関連があると思います。Ionic 4バージョン:
home.ts
async postEvent() {
const modal = await this.modalCtrl.create({
component: AddEvent
});
modal.onDidDismiss().then(data => {
console.log('dismissed', data);
});
return await modal.present();
}
add-event.ts
constructor(public modalCtrl: ModalController) {}
close() {
this.modalCtrl.dismiss({
dismissvalue: value
});
}
また、HomeModuleにAddEventModuleを含めることを忘れないでください。
home.component.ts
@NgModule({
declarations: [
...
],
imports: [
IonicModule,
CommonModule,
AddEventModule
],
exports: [
...
]
})