我的应用程序中的某些路由是游戏,我想在用户即将离开正在运行的游戏时实现确认过程。
有没有办法“停止”路由器?
我试过了:
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');
}
}
}
}