Meteor Router.go()不起作用。它只是在浏览器中刷新一个新的URL几毫秒,而且页面没有切换。
对不起,我无法找到这个有线的事情发生的线索..!
Template.Post.events({
'click a': function() {
Router.go('mainPage');
});
Router.route('/', {
name: 'mainPage',
template: 'mainPage'
});
更新:我输入了Router.go(' mainPage');在Chrome控制台中。它工作并返回undefined。
答案 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