アプリケーションの一部のルートはゲームであり、ユーザーが実行中のゲームを離れようとしているときに確認プロセスを実装したいと考えています。
ルーターを「停止」する方法はありますか?
私はそれを試しました:
Router.configure({
onBeforeRun: function() {
Router.stop();
}
});
しかし、それはすべてを破壊します。
何か案が ?
アプリケーションの一部のルートはゲームであり、ユーザーが実行中のゲームを離れようとしているときに確認プロセスを実装したいと考えています。
ルーターを「停止」する方法はありますか?
私はそれを試しました:
Router.configure({
onBeforeRun: function() {
Router.stop();
}
});
しかし、それはすべてを破壊します。
何か案が ?
このようなものを使用できますか?(Iron-Router 自体はまだ使用していません)
基本的には、リンクのクリック イベントをキャッチし、確認ダイアログをスローするだけです。[はい] をクリックすると、ルート変更をトリガーするルーターの go メソッドが実行されます。それ以外の場合、クリックは無視されます。
代わりに元の href 値を使用するように更新コードを編集します
Meteor.templateName.events({
'click .someLink': function(e) {
e.preventDefault();
if (game.isRunning && confirm('are you sure you want to leave?') ) {
// Router.go('routeName'); // edit, see comment below
Router.url(e.target.href);
}
}
});
これは古い投稿ですが、解決しました。ここに私の解決策があります:
Router.route('/myPath', {
unload: function (e, obj) {
if(Session.get("hasChanged")){
if (confirm("Are you sure you want to navigate away ?")) {
// Go and do some action
}else{
// Redirect to itself : nothing happend
this.redirect('/myPath');
}
}
}
}