Accounts.OnCreateUser()未触发

gam*_*ers 2 meteor

我正在关注这个关于自定义登录的精彩教程,作为这篇文章的答案 - http://goo.gl/VLO34 - 但它对我不起作用.

我逐字复制了所有文件,甚至添加了补充智能软件包,如下划线_.pick和http Meteor.http.get,以防它被要求,并被错误地遗漏.

Anyhoo - 我得到github授权我的应用程序,但是Web控制台和db.users.findOne()本地mongo实例中的Meteor.users 显示Accounts.OnCreateUser()没有向我的用户配置文件添加任何新信息[我从github中提取].换句话说,{{currentUser.profile.avatar_url}}并且{{currentUser.profile.login}}不会在该教程之后透露任何内容.所以我在屏幕上得到空白信息.

我尝试了第一次尝试的截屏视频,并注意到{loginButtons}}返回的值{{currentUser.profile.login}}.我已经多次查看了拼写错误的代码,但觉得有些东西是完全没有Accounts.onCreateUser(fn)...

我正在使用Meteor 0.5.7,如果有其他人在截屏后遇到此问题,请告诉我.谢谢,

编辑:我已将该项目部署到 - http://rptest-customlogin.meteor.com/.

cma*_*her 5

截屏的作者在这里.截至几秒钟前,您网站上的新用户:-).因此,看起来登录正在您的网站上运行.但是我猜你的应用程序中发生了什么,在渲染时或者当你打印到控制台时,登录信息还没有.原因是所有信息都是异步填充的.该过程需要几秒钟才能完成.如果您依赖于模板中的Meteor.user().配置文件数据,则需要先检查登录过程是否仍在进行中.

为此,您可以使用Meteor.loggingIn()javascript函数或{{#if loggingIn}}handlebars块帮助程序.这功能是"无功",这意味着一旦从结果的变化true,以false您的UI将更新.所以模板可能看起来像这样:

<template name="loginDependentWidget">
  {{#if loggingIn}}
     Logging In
  {{else}}
     {{currentUser.profile.avatar_url}}
  {{/if}}
</template>
Run Code Online (Sandbox Code Playgroud)

这有帮助吗?