你如何处理Session中的“volatile”值?例如,我在会话中持有表单验证错误。但我不希望他们在页面刷新或更改页面后出现在那里。
答案 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
});