我想知道是否有办法将数据从模态传递到上一页而不使用nav controller
。如果我使用它,事实上,我在堆栈上推另一页,我不想要这个,我只想回到现有的页面。问题是,如果我这样做:
this.viewCtrl.dismiss();
this.navCtrl.pop();
当我要关闭它时,在模态内部,它给了我一个错误,说没有页面可以弹出。dismiss()
方法进行模态,但我需要将一些数据返回到上一页,我不知道如何做到这一点。可能吗?我怎样才能做到这一点?
答案 0 :(得分:2)
就像您可以看到 here 一样,您可以使用dismiss
方法发送一些数据并将其显示在上一页(您不要' t 需要使用this.navCtrl.pop();
):
// Page A
// ----------
private dataFromModal: any;
presentModal() {
let modal = this.modalCtrl.create(ModalPage);
modal.onWillDismiss((data) => {
// This is going to be executed when the modal is closed, so
// you can get the data here
this.dataFromModal = data;
});
modal.present();
}
// Page B
// ----------
let data = { 'foo': 'bar' };
this.viewCtrl.dismiss(data);
答案 1 :(得分:1)
您可以将数据存储在存储中,然后解除提取信息,如下所示:
import { Storage } from '@ionic/storage';
constructor(private navCtrl: NavController, private navParams: NavParams,
private modalCtrl: ModalController,
private storage: Storage) {}
openModal() {
let modal = this.modalCtrl.create(ModalPage);
modal.present();
modal.onDidDismiss(data => {
this.getInfo();
});
}
getInfo() {
this.storage.get("some_data").then(res => {
if(res != null){
this.data = res;
}
});
}
modal.ts
setInfo() {
this.storage.set('some_data', data);
this.dismiss();
}