Meteor - 在页面更改/重新加载时从会话中删除

时间:2013-10-06 15:26:32

标签: session meteor

你如何处理Session中的“volatile”值?例如,我在会话中持有表单验证错误。但我不希望他们在页面刷新或更改页面后出现在那里。

2 个答案:

答案 0 :(得分:5)

会话变量无法在手动页面刷新(ctrl + r)后继续存在。如果您希望在页面转换后清除某些变量,则可以将清除代码放入路由器或模板的destroyed回调中(我通常会选择后者)。例如,如果您有一个名为signin的模板,则可以执行以下操作:

Template.signin.destroyed = function(){
  Session.set('signinValidationErrors', null);
}

每当您离开登录页面(模板被销毁)时,它都会清除signinValidationErrors

答案 1 :(得分:0)

如果要在离开页面后删除会话变量,则可以选择以下选项:

Session.set('validationErrors', null);
// or
Session.keys.validationErrors = null;
// or
Session.keys['validationErrors'] = null;
// or
delete Session.keys.validationErrors;
// or
delete Session.keys['validationErrors'];

只要用户离开页面,onDestroyed就会执行。将您的选择放在那里,它将清除Session变量

Template.myPage.onDestroyed(function (){
    // put your choice here
});