Meteor Router.go() 不会重定向,但它在 Chrome 的控制台中有效
Meteor Router.go() doesn't rederect, but it works in Chrome's console
Meteor Router.go() 不起作用。它只是在浏览器中闪烁一个新的 url 几毫秒,页面没有切换。
抱歉,我找不到任何关于这件事是如何发生的线索......!
Template.Post.events({
'click a': function() {
Router.go('mainPage');
});
Router.route('/', {
name: 'mainPage',
template: 'mainPage'
});
更新:我输入Router.go('mainPage');在 Chrome 控制台中。它有效并且 return 未定义。
我们可以看看您的路由器定义吗?
至少设置一条路线:
Router.route('/mainPage', {
template: 'mainPage'
});
可在此处找到文档:https://github.com/iron-meteor/iron-router/blob/devel/Guide.md
我也遇到了这个问题,将它包装在 Meteor.setTimeout 中是让它工作的唯一方法。
'click a': function() {
Meteor.setTimeout(function(){ Router.go('mainPage'); }, 10);
}
为了避免每个人都经历这种悲惨、可怕的经历,请让我post我的解决方案并自己回答:
当 Router.go()
重定向 URL 时,URL 也会立即重定向到 href="#"
或 href=""
。因此,它禁用了从 Router.go()
.
的重定向
解决方法就是不要把href=""
放在<a>
标签里。另外,您可以添加此 css:
a:hover {
cursor: pointer;
}
显示标签实际上是可点击的。
您可以通过调用 event.preventDefault()
来避免删除 href
,这会停止执行任何其他冒泡事件,例如 href
点击:
"click #aLinkId": function(event, template) {
event.preventDefault();
Router.go('/newLocation');
}
Meteor Router.go() 不起作用。它只是在浏览器中闪烁一个新的 url 几毫秒,页面没有切换。
抱歉,我找不到任何关于这件事是如何发生的线索......!
Template.Post.events({
'click a': function() {
Router.go('mainPage');
});
Router.route('/', {
name: 'mainPage',
template: 'mainPage'
});
更新:我输入Router.go('mainPage');在 Chrome 控制台中。它有效并且 return 未定义。
我们可以看看您的路由器定义吗?
至少设置一条路线:
Router.route('/mainPage', {
template: 'mainPage'
});
可在此处找到文档:https://github.com/iron-meteor/iron-router/blob/devel/Guide.md
我也遇到了这个问题,将它包装在 Meteor.setTimeout 中是让它工作的唯一方法。
'click a': function() {
Meteor.setTimeout(function(){ Router.go('mainPage'); }, 10);
}
为了避免每个人都经历这种悲惨、可怕的经历,请让我post我的解决方案并自己回答:
当 Router.go()
重定向 URL 时,URL 也会立即重定向到 href="#"
或 href=""
。因此,它禁用了从 Router.go()
.
解决方法就是不要把href=""
放在<a>
标签里。另外,您可以添加此 css:
a:hover {
cursor: pointer;
}
显示标签实际上是可点击的。
您可以通过调用 event.preventDefault()
来避免删除 href
,这会停止执行任何其他冒泡事件,例如 href
点击:
"click #aLinkId": function(event, template) {
event.preventDefault();
Router.go('/newLocation');
}