18

所以总的来说,我对流星框架和 JavaScript 还是比较陌生,但我正在做一个使用该框架的小项目,试图让自己从头开始。基本上我在一个微博网站上工作。

目前用户可以通过多个服务登录,fb、google 等。我通过插入所需 url 的服务 id 检索他们的头像,这一切都很好。但是我希望用户能够在登录后立即看到自己的头像,这意味着我需要在登录成功后立即运行一些 JavaScript。在这个时间点上,我在 onLogin 样式事件中找不到任何东西。并且在用户登录时将车把模板组合在一起运行代码。但是,此代码似乎只运行一次,如果用户注销然后重新登录,他们就再也看不到他们的头像了。

有谁知道我可以用来执行此操作的事件?

这是我的 hacky 模板

{{#if currentUser}}
    {{> userInput}}
{{/if}}

这是它调用的js

$('#inputAvatar').css('background-image', 'url('+avatarUrl+')');

我非常感谢您的帮助,我确定这是我忽略的简单事情,但我似乎无法弄清楚!

谢谢,彼得。

4

2 回答 2

18

我不知道您这样做的方式是否最合适,但个人在客户端执行以下操作以检测用户是否登录:

Tracker.autorun(function(){
  if(Meteor.userId()){
    //do your stuff
  }
});
于 2013-05-03T06:58:02.477 回答
2

如果您使用 google 登录或任何其他 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
  }
});
于 2015-05-07T19:21:54.310 回答