我创建了一个流星 0.5.4 应用程序 - 添加了帐户 UI、帐户密码,并将 {{loginButtons}} 添加到模板 name="hello" 块帽子随每个流星创建一起提供。
当我在 chrome 浏览器控制台中输入这个时, Meteor.user().emails[0].address 根据这些 SO 来源 - http://goo.gl/MTQWu,http://goo.gl/Cnbn7 - 我得到当前登录的用户电子邮件。
当我尝试将相同的代码放入 if (Meteor.isClient) 部分时:
Template.hello.greeting = function () {
return Meteor.user().emails[0].address;
};
我得到:
Uncaught TypeError: Cannot read property '0' of undefined foo.js:3
Exception from Meteor.flush: TypeError: Cannot call method 'firstNode' of undefined
如果您不能将 Meteor.user() 放在发布功能中,我还能如何获取登录用户的电子邮件?我尝试将其设为共享函数,并在客户端函数中使用 Meteor.call('getEmail', Meteor.userId()) 调用它,结果相似。