Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor.js登录事件_Javascript_Meteor - Fatal编程技术网

Javascript Meteor.js登录事件

Javascript Meteor.js登录事件,javascript,meteor,Javascript,Meteor,所以我对meteor框架和JavaScript一般来说是比较陌生的,但我正在做一个小项目,使用该框架来尝试让自己达到最新水平。基本上我是在一个微博网站上工作 目前,用户可以通过多种服务登录,如fb、谷歌等。我通过插入所需url的服务id检索他们的头像,所有这些都很好。但我希望用户能够在登录后立即看到自己的头像,这意味着登录成功后我需要立即运行一些JavaScript。此时此刻,我在onLogin风格的活动中找不到任何东西。并拼凑了一个把手模板,在用户登录时运行代码。然而,这段代码似乎只运行一次,

所以我对meteor框架和JavaScript一般来说是比较陌生的,但我正在做一个小项目,使用该框架来尝试让自己达到最新水平。基本上我是在一个微博网站上工作

目前,用户可以通过多种服务登录,如fb、谷歌等。我通过插入所需url的服务id检索他们的头像,所有这些都很好。但我希望用户能够在登录后立即看到自己的头像,这意味着登录成功后我需要立即运行一些JavaScript。此时此刻,我在onLogin风格的活动中找不到任何东西。并拼凑了一个把手模板,在用户登录时运行代码。然而,这段代码似乎只运行一次,如果用户注销后又重新登录,他们就再也看不到自己的化身了

有人知道我可以用什么活动来做这件事吗

这是我的黑客模板

{{#if currentUser}}
    {{> userInput}}
{{/if}}
这是它调用的js

$('#inputAvatar').css('background-image', 'url('+avatarUrl+')');
我真的很感激你的帮助,我相信这是我忽略了的简单的事情,但我似乎无法理解


谢谢你,Peter。

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

Tracker.autorun(function(){
  if(Meteor.userId()){
    //do your stuff
  }
});

如果您使用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
  }
});

谢谢,我知道这很明显!代码现在运行良好,但由于某些原因,我更新背景图像的代码无法工作。我会注意到它在进入chromes控制台时有效,但在Deps.autorun方法
$('inputAvatar').css('background-image','url(\'+avatarURL+'\'))中运行时无效更新我实际上解决了我的模板的.rendered函数与Deps.autorun函数相结合的问题。谢谢你的帮助!我可以问你为什么需要在客户端上运行这个吗?它现在真的让我搞不清metore.userId()在服务器上的作用。
Deps
已重命名为
Tracker
。现在就是这样。回调应该可以用于任何Meteor.loginWith()方法,包括Meteor.loginWithPassword()。我不想在这里提到OAuth,把任何人都甩了。