Meteor iron-router .go 无需刷新站点
Meteor iron-router .go without refreshing the site
我想使用 Router.go('...') 函数通过 javascript 导航,例如提交表格。是否可以在不刷新整个站点的情况下这样做?刷新不会是这样的问题,问题是刷新强制退出所有警报,例如当用户提交表单并且一切顺利时,他会收到警报,然后我想将他移到另一个站点(使用 Router.go('...')),但是在使用此功能后网站会刷新并退出警报。
对于警报,我正在使用 sAlert 包。
在提交表单时,您可以阻止浏览器的默认行为,其中之一就是页面刷新。
你可以这样做。
Template.myTemplate.events({
'click': function(event) { // whichever class is used to trigger the submit function
event.preventDefault(); // prevent browser default behavior, i.e. refresh for on submit in forms
// rest of your code
// Router.go('nameOfRoute');
}
});
关于在导航后保持数据状态不变,您可以使用sessions。还要记住,会话变量位于客户端的全局 space 上。
s-alert包中有一个onClose回调事件你可以使用:
https://github.com/juliancwirko/meteor-s-alert#callback-onclose
只需将包含您的 Router.go 的函数传递到警报的 属性 中即可。
我想使用 Router.go('...') 函数通过 javascript 导航,例如提交表格。是否可以在不刷新整个站点的情况下这样做?刷新不会是这样的问题,问题是刷新强制退出所有警报,例如当用户提交表单并且一切顺利时,他会收到警报,然后我想将他移到另一个站点(使用 Router.go('...')),但是在使用此功能后网站会刷新并退出警报。 对于警报,我正在使用 sAlert 包。
在提交表单时,您可以阻止浏览器的默认行为,其中之一就是页面刷新。
你可以这样做。
Template.myTemplate.events({
'click': function(event) { // whichever class is used to trigger the submit function
event.preventDefault(); // prevent browser default behavior, i.e. refresh for on submit in forms
// rest of your code
// Router.go('nameOfRoute');
}
});
关于在导航后保持数据状态不变,您可以使用sessions。还要记住,会话变量位于客户端的全局 space 上。
s-alert包中有一个onClose回调事件你可以使用: https://github.com/juliancwirko/meteor-s-alert#callback-onclose
只需将包含您的 Router.go 的函数传递到警报的 属性 中即可。