我想显示一个"欢迎回来"用户执行signIn后主页上的消息。但是,在我使用Router.go('home');
进行重定向后,我无法在Template.home.rendered = function()
内阅读会话。
这是我的代码:
登录逻辑:
Meteor.loginWithPassword(username, password, function(err) {
if (err) {
showError();
} else {
Session.set('signInSuccess', true);
Router.go('home');
}
});
Template.home.rendered = function() {
console.log(Session.get('signInSuccess'));
if (Session.get('signInSuccess') == true) {
showWelcomeMessage();
Session.set('signInSuccess', null);
}
}
非常感谢任何帮助。
答案 0 :(得分:1)
这只是因为Template.home.rendered
在您的模板首次插入DOM时只执行一次(如果通过路由机制销毁并重新插入模板,它可能会再次执行)。
在此处查看呈现的行为:http://docs.meteor.com/#template_rendered
尝试将验证码包装在自动运行中:
Template.home.rendered=function(){
// setup a reactive computation to watch for Session variable modification
this.autorun(functon(){
// using Session.equals is better than checking against Session.get
// see http://docs.meteor.com/#session_equals
if(Session.equals("signInSuccess",true)){
showWelcomeMessage();
Session.set("signInSuccess",false);
}
});
};