我需要查明触发click. event
的用户是否有经过验证的电子邮件。在“真实”的情况下,他应该被重定向到另一个页面,在那里他可以调用服务器端方法。在“假”的情况下,他应该被重定向到一个页面,在那里他可以点击一个按钮来重新给他一个新的验证链接。
我尝试使用我在其他问题中找到的一些功能,但它没有用。这是我的点击代码。事件和如果功能无法解决:
"click. event": function(e){
e.preventDefault();
if (this.userId && Meteor.user().emails[0].verified)
{
Router.go('LinkToCallTheMethod');
}; else
{
console.log('Please verify email first');
Router.go('LinkToResentVerificationLink');
}
});
问题是没有任何反应。即使我将emails[0].verified
字段中的布尔值更改为“true”或“false”(无关紧要,没有任何反应),用户也不会被重定向,但我也没有收到任何错误代码。
因此,我认为问题出在if(...&& Meteor.user().emails[0].verified)
。有没有其他方法可以确定电子邮件是否已经过验证?
答案 0 :(得分:1)
您无法在客户端上使用 this.userId 。它只适用于服务器端。尝试使用 Meteor.userId()。