ionViewCanLeave()
navGuardを使用して確認メッセージを表示するIonic 2アプリがあります。これは問題なく動作します。ユーザーに確認ダイアログが表示され、必要に応じて退室しないように選択できます。ここではそのためのコードは次のとおりです。2つの約束を入れ子にして、ionViewCanLeaveで結果を待つことができますか?
// 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();
});
}
}
私は今storage
から、ここで追加の変数をチェックする必要があります。その変数を得るために私は約束が必要です。私のコードは次のようになります:
ここでは、ページがナビゲーションスタックからポップされ、確認ダイアログが表示されます。 ionViewCanLeave()
は非同期であるため、ストレージの呼び出しが実行されるのを待っていないようです。
どうすればこの問題を回避できますか?
return this.storage.get(/* ...etc
^^^^^^ */
で
詳細情報は、あなたの質問に関連していない:あなたは 'if'条件が正しいことを確認していますか? '&&'ではなく' || 'でなくてはなりませんか?ただ変数の名前で推測する... – trincot
私はちょうどあなたの質問は、alerCtrlを使用してページの休暇を防ぐのに役立ったと言いたい、解決するために私に4日かかった問題 – George