Onay mesajını göstermek için ionViewCanLeave()
navGuard kullanan bir İyonik 2 uygulamasına sahibim. Bu iyi çalışıyor; Kullanıcıya bir onay iletişim kutusu gösterilir ve eğer isterlerse çıkmamaya karar verebilirler. İşte bunun için kod: Ben şimdi storage
burada ek bir değişkeni kontrol etmeniz gerekir2 vaatler nasıl yuvalanır ve ionViewCanLeave sonuç için bekleyebilir?
// About to leave
ionViewCanLeave() {
if(!this.allowedToLeave) {
return new Promise((resolve, reject) => {
let confirm = this.alertCtrl.create({
title: 'Are you sure?',
message: 'Are you sure?',
buttons: [{
text: 'OK',
handler:() => {
this.allowedToLeave = true;
resolve();
},
}, {
text: 'Cancel',
handler:() => {
reject();
}
}],
});
confirm.present();
});
}
}
. Bu değişkeni elde etmek için bir söze ihtiyacım var. Olsa burada ne olur
// About to leave
ionViewCanLeave() {
this.storage.get('safe_to_leave').then((val) => {
this.safeToLeave = val;
if(!this.allowedToLeave && !this.safeToLeave) {
return new Promise((resolve, reject) => {
let confirm = this.alertCtrl.create({
title: 'Are you sure?',
message: 'Are you sure?',
buttons: [{
text: 'OK',
handler:() => {
this.allowedToLeave = true;
resolve();
},
}, {
text: 'Cancel',
handler:() => {
reject();
}
}],
});
confirm.present();
});
}
});
}
sayfa gezinme yığınından attı ve daha sonra onay iletişim gösterildiğini aşağıdaki gibidir: Benim kodudur. ionViewCanLeave()
, depolama çağrısının eşzamansız olduğu için çalışmasını beklemiyor gibi görünüyor.
Bunu nasıl aşabilirim?
return this.storage.get(/* ...etc
^^^^^^ */
de
diğer bilgiler sorunuzla ilgili Değil: 'if' koşul doğru olduğundan emin misin? "&&" yerine "||" değilse mi? Sadece değişkenlerin isimleri ile tahmin ... – trincot
Sadece senin sorununun bir alerCtrl kullanarak bir sayfa terk etmesini engellemede bana yardımcı olduğunu söylemek istiyorum, çözmek için bana 4 gün süren bir sorun, teşekkürler – George