我是Meteor的新手。
我要做的是在邀请他们加入服务(已完成)时向某人发送电子邮件,但我希望该电子邮件能够动态填充邀请他们加入详细信息的用户。这是我的代码:
Meteor.publish('profile', function() {
return Meteor.users.find(this.userId);
});
var emailData = {
existingUser: 'currentUser().profile.displayName',
existingOrganisation: 'currentUser().profile.organisation',
existingEmail: Meteor.users.emails[0].address
};
//Code taken from Meteor Docs to customise content of enrollment email
Accounts.emailTemplates.siteName = "Amendd";
Accounts.emailTemplates.from = "Amendd <no-reply@amendd.com>";
Accounts.emailTemplates.enrollAccount.subject = function (user) {
return "Welcome to Amendd";
};
Accounts.emailTemplates.enrollAccount.html = function (user, url) {
return SSR.render('enrollAccountEmail', emailData) + url;
};
其中enrollAccount.html是我的'/ private'文件夹中的单独文件。我在现有的用户和现有的组织变量之后放置了' - ',而我则专注于让电子邮件字段工作。
我在终端中保存并运行项目时出现的错误消息是
TypeError:无法读取未定义“
的属性”0“
它指向nowEmail变量中的[0]。
任何人都可以解释我所拥有的问题吗?
更新
对此的修复是在函数中移动emailData对象:
SSR.compileTemplate('enrollAccountEmail', Assets.getText('enrollAccountEmail.html'));
Accounts.emailTemplates.siteName = "Amendd";
Accounts.emailTemplates.from = "Amendd <no-reply@amendd.com>";
Accounts.emailTemplates.enrollAccount.subject = function (user) {
return "Welcome to Amendd , " + user.email;
};
Accounts.emailTemplates.enrollAccount.html = function (user, url) {
var emailData = {
existingUser: Meteor.user().profile.displayName,
existingOrganisation: Meteor.user().profile.organisation,
existingEmail: Meteor.user().emails[0].address
};
return SSR.render('enrollAccountEmail', emailData) + url;
};
答案 0 :(得分:2)
我不相信currentUser()在服务器上有效。尝试使用Meteor.user(),除了发布功能外,它可以在任何地方使用。
Meteor.user()。电子邮件[0]。地址