I'm trying to create a modal window, pass it an array of objects, have a user select one object from that array, and then have my modal pass back the object they've selected.
I've tried using the Ionic 2 approach of modalName.onDidDismiss(data=> …) as explained here, but apparently Ionic 4 changed "onDidDismiss" to not accept any values passed back to it.
So I'm at a loss for how to send data from my Modal window back to the page that called it.
Using isOpen The isOpen property on ion-modal allows developers to control the presentation state of the modal from their application state. This means when isOpen is set to true the modal will be presented and when isOpen is set to false the modal will be dismissed.
Confirm Popup OptionsThe subtitle of the popup. The CSS class name of the popup. The text for the Cancel button. The Ionic button type of the Cancel button.
Some days ago I had the same problem and here's my solution:
I guess, you already have a component which contains the actual modal. name UserModalComponent
Your UserModalComponent
should get the ModalController injected:
constructor(private modalController: ModalController){}
Next step is to pass the selected user back:
selectUser(user: User):void { this.modalController.dismiss(user); }
In your component in which you want to call the modal and get the user back, you also have to inject the ModalController
as above and additionally, you need this method:
async openUserModal() { const modal = await this.modalCtrl.create({ component: UserModalComponent, componentProps: { users: this.users }, }); modal.onDidDismiss() .then((data) => { const user = data['data']; // Here's your selected user! }); return await modal.present(); }
I hope this helps! If anything is unclear, just ask!
This is how you get data back from modal in Ionic 4 :
contactsModal.onDidDismiss().then(data => { console.log('data came back from modal'); console.log(data); })
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With