Meteor Router.go()没有兑换,但它可以在Chrome的控制台中使用

时间:2015-05-25 20:22:35

标签: meteor iron-router

Meteor Router.go()不起作用。它只是在浏览器中刷新一个新的URL几毫秒,而且页面没有切换。

对不起,我无法找到这个有线的事情发生的线索..!

Template.Post.events({ 
'click a': function() { 
    Router.go('mainPage');  
});

Router.route('/', {
  name: 'mainPage',
  template: 'mainPage'
});

更新:我输入了Router.go(' mainPage');在Chrome控制台中。它工作并返回undefined。

4 个答案:

答案 0 :(得分:13)

为每个人避免这种悲惨的可怕经历!让我发布我的解决方案并回答自己:

当Router.go()重定向网址时,网址也会立即重定向到href =“#”或href =“”。因此,它禁用重定向表单Router.go()。

解决问题的方法就是不要在标签上加上href =“”。你也可以把这个css:      a:悬停{       光标:指针;      }

显示标签实际上是可点击的。

答案 1 :(得分:5)

您可以通过在事件event.preventDefault();的顶部添加以下行来避免必须删除href,这会停止执行任何其他冒泡事件,例如href click:

"click #aLinkId":function(event, template){ event.preventDefault(); Router.go('/newLocation'); }

答案 2 :(得分:4)

我也有这个问题,将它包装在Meteor.setTimeout中是让它工作的唯一方法。

'click a': function() { 
    Meteor.setTimeout(function(){ Router.go('mainPage'); }, 10); 
}

答案 3 :(得分:0)

我们能看到您的路由器定义吗?

至少设置一条路线:

Router.route('/mainPage', {
    template: 'mainPage'
});

可以在此处找到文档:https://github.com/iron-meteor/iron-router/blob/devel/Guide.md