Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 流星铁路由器:取消路由_Javascript_Meteor_Router - Fatal编程技术网

Javascript 流星铁路由器:取消路由

Javascript 流星铁路由器:取消路由,javascript,meteor,router,Javascript,Meteor,Router,我的应用程序中的一些路由是游戏,我想在用户即将离开运行中的游戏时实现一个确认过程 有没有办法“停止”路由器 我试过: Router.configure({ onBeforeRun: function() { Router.stop(); } }); 但它摧毁了一切 有什么主意吗?你能用这样的吗?(我自己还没有用过熨斗路由器) 基本上只是捕捉链接点击事件,并抛出确认对话框。如果他们单击yes,它将运行路由器的go方法,触发路由更改,否则单击将被忽略 编辑更新代码

我的应用程序中的一些路由是游戏,我想在用户即将离开运行中的游戏时实现一个确认过程

有没有办法“停止”路由器

我试过:

Router.configure({

    onBeforeRun: function() {
        Router.stop();
    }
});
但它摧毁了一切


有什么主意吗?

你能用这样的吗?(我自己还没有用过熨斗路由器)
基本上只是捕捉链接点击事件,并抛出确认对话框。如果他们单击yes,它将运行路由器的go方法,触发路由更改,否则单击将被忽略

编辑更新代码以使用原始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');
           }
        }
    }
}

这会起作用,但这意味着我不能使用
{{{link to}}
助手;这是iron routerGood point中基本的nice实用程序之一。我更新了上面的代码以使用他们的url方法,看起来它导航到了您传递给它的url。或者,您可以将其去掉,只需将
e.preventDefault()
放在if语句中。(不确定)哦,我看到了如何使用你的答案:)我稍微编辑了一下你的代码
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');
           }
        }
    }
}