[英]How to sync firebase data on modal dismiss without reloading the page in ionic?
我正在使用一種模式來獲取將保存在Firebase中的表單值。 我正在從Firebase中檢索保存的數據,並將其顯示在頁面中。 但是當我關閉表單提交中的模式時,我的價值沒有得到更新。 看起來我每次退出模態時都必須重新加載構造函數。 有沒有更好的方法來更新數據而無需在模式onWillDismiss上重新加載構造函數?
我的首頁組件
export class HomePage {
items: any = []
roomData:any;
constructor(public navCtrl: NavController,public modal:ModalController,public navParams:NavParams,public auth:AuthProvider,public af:AngularFireModule) {
this.roomData=auth.getRoomData();
console.log('Rooms data from firebase',this.roomData)
this.items.push(this.roomData)
console.log(this.items);
}
addItem(){
var modal = this.modal.create(AddRoomModalPage);
modal.present();
// modal.onWillDismiss(function(success,err){
// if(err){
// return console.log('thsk');
// }else{
// }
// })
}
}
我的情態成分
export class AddRoomModalPage {
public roomDetails:FormGroup;
constructor(public navCtrl: NavController, public auth:AuthProvider,public navParams: NavParams,public formBuilder: FormBuilder,public viewCtrl:ViewController) {
this.roomDetails = formBuilder.group({
roomName: ['', Validators.required],
idealFor:['',Validators.required],
roomMates: ['', Validators.required],
location: ['', Validators.required],
reqID:[false,Validators.required]
});
}
ionViewDidLoad() {
console.log('ionViewDidLoad AddRoomModalPage');
}
addRoom(){
if(this.roomDetails.valid){
console.log(this.roomDetails.value);
this.auth.addNewRoom(this.roomDetails.value);
this.viewCtrl.dismiss();
}else{
console.log("form invalid")
}
}
closeModal(){
this.viewCtrl.dismiss();
}
任何幫助將非常感激。 提前致謝!
您可以使用ModalController的onDismiss()方法。 簡單例如:
let modal = Modal.create(myModal, { data: [...] });
// Getting data from the modal:
modal.onDismiss(data => {
// Update your props here
console.log('MODAL DATA', data);
});
this.nav.present(modal);
也許你可以使用ionViewWillLeave()
在你的模式,或使用ionViewWillEnter()
在您的HomePage
以獲取此事件。
請參閱此處的官方文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.