当我使用电子邮件和密码登录Meteor网站时,{{>loginButtons}}
会显示我的用户名:
<li id="login-dropdown-list" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
"Yngve Høiseth"
<b class="caret"></b>
</a>
<div class="dropdown-menu">
<button class="btn btn-block btn-primary" id="login-buttons-logout">
Logg ut
</button>
</div>
</li>
但是,当我使用Twitter或Facebook登录时,没有显示名称:
<li id="login-dropdown-list" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
<b class="caret"></b>
</a>
<div class="dropdown-menu">
<button class="btn btn-block btn-primary" id="login-buttons-logout">
Logg ut
</button>
</div>
</li>
accounts-ui和ian:accounts-ui-bootstrap-3都会发生这种情况。
我没有做任何奇特的事 - 只包括模板。我已尝试将{{>loginButtons}}
放在导航栏之外,并且我尝试手动刷新页面,但无济于事。
答案 0 :(得分:0)
这种情况正在发生,因为当您使用users
和其他第三方登录服务时,email-password
架构会有所不同。要显示已记录的用户名,您需要创建一个全局users
帮助程序,并在blaze
内调用它。
Meteor.users.helpers({
fullName: function () {
if (_.has(this.services, 'facebook')) {
return this.services.facebook.name;
}
if (_.has(this.services, 'google')) {
return this.services.google.name;
}
return null;
}
});
上面的代码演示了如何定义全局帮助器。检查您的users
数据库架构并相应地获取名称。
那么你需要在这个视图中调用:
{{ currentUser.fullName }}