2
我的應用中的一些路由是遊戲,我想在用戶即將離開奔跑遊戲時執行確認過程。流星鐵路由器:取消路由
有沒有辦法「停止」路由器?
我試過:
Router.configure({
onBeforeRun: function() {
Router.stop();
}
});
卜它破壞evrything。
有什麼想法?
我的應用中的一些路由是遊戲,我想在用戶即將離開奔跑遊戲時執行確認過程。流星鐵路由器:取消路由
有沒有辦法「停止」路由器?
我試過:
Router.configure({
onBeforeRun: function() {
Router.stop();
}
});
卜它破壞evrything。
有什麼想法?
你能用這樣的東西嗎? (我還沒有使用Iron-Router)
基本上只是捕捉鏈接點擊事件,並拋出確認對話框。如果他們點擊是的,它會運行的觸發路由改變路由器的走法,否則點擊被忽略
編輯更新代碼,使用原來的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');
}
}
}
}
這將工作,但這意味着我不能使用'{{鏈接到}}助手;這是鐵路路由器 – fabien
好點的基本好工具之一。我更新了上面的代碼以使用它們的url方法,它看起來像導航到您傳遞給它的url。或者,你也許可以去掉那個,只需在if語句中放置'e.preventDefault()'。 (不確定手寫) – SkinnyGeek1010
哦,我看到了如何使用你的答案:)我編輯你的代碼一點點 – fabien