所以我对meteor框架和JavaScript一般都很陌生,但我正在研究一个使用框架的小项目来尝试让自己从头开始。基本上我在微博客网站上工作。
目前用户可以通过多种服务登录,fb,谷歌等。我通过插入所需网址的服务ID检索他们的头像,这一切都很好。但我希望用户能够在登录后立即看到自己的头像,这意味着我需要在登录成功后立即运行一些JavaScript。此时我无法在onLogin样式事件中找到任何内容。并且在用户登录时将一个把手模板拼凑在一起以运行代码。但是这段代码似乎只运行一次,如果用户退出然后又回来,他们就不再看到他们的头像了。
有没有人知道我可以用来做这件事的事件?
这是我的hacky模板
{{#if currentUser}}
{{> userInput}}
{{/if}}
这里是它调用的js
$('#inputAvatar').css('background-image', 'url('+avatarUrl+')');
我真的很感激帮助,我确信这是一件很简单的事情,我忽略了但是我似乎无法理解它!
谢谢,彼得。
答案 0 :(得分:18)
我不知道您执行此操作的方式是否最合适,但在客户端亲自执行以下操作以检测用户是否已登录:
Tracker.autorun(function(){
if(Meteor.userId()){
//do your stuff
}
});
答案 1 :(得分:2)
如果您使用谷歌登录或任何其他o-auth登录,您可以传递一个回调函数,该函数将在登录后执行,
以下是示例代码。
Meteor.loginWithGoogle({
requestPermissions: ['email']
}, function(error) {
if (error) {
console.log(error); //If there is any error, will get error here
}else{
console.log(Meteor.user());// If there is successful login, you will get login details here
}
});