在页面加载前检查用户电子邮件状态
Check user email status before page loads
我正在使用 unless spacebar 功能来检查用户是否已经验证了他们的电子邮件地址。在生产中,我假设由于延迟,屏幕会显示此通知,然后如果电子邮件已通过验证,则会在一秒钟后发生变化。有没有办法减慢页面加载速度,以便在页面加载之前检查用户的电子邮件状态?
<template name="mainLayout">
{{#unless currentUser.emails.[0].verified}}
<p class="alert alert-warning text-center">We have sent you an email to verify your email address. All users must confirm their email address to access the BHR platform.</p>
{{else}}
<div id="content" class="content">
<div class="container">
{{>Template.dynamic template=main}}
</div>
</div>
{{/unless}}
</div>
</template>
延迟是因为第一次呈现模板时 Meteor.user()
对象尚未完全加载。然后它加载并反应性地交换部分。
您需要在加载用户对象时显示加载 screen/spinner。如何执行此操作取决于您使用的路由器。
我相信这就是 Michael 的建议。将您的模板包装在:
{{#if Template.subscriptionsReady}}
{{/if}}
我正在使用 unless spacebar 功能来检查用户是否已经验证了他们的电子邮件地址。在生产中,我假设由于延迟,屏幕会显示此通知,然后如果电子邮件已通过验证,则会在一秒钟后发生变化。有没有办法减慢页面加载速度,以便在页面加载之前检查用户的电子邮件状态?
<template name="mainLayout">
{{#unless currentUser.emails.[0].verified}}
<p class="alert alert-warning text-center">We have sent you an email to verify your email address. All users must confirm their email address to access the BHR platform.</p>
{{else}}
<div id="content" class="content">
<div class="container">
{{>Template.dynamic template=main}}
</div>
</div>
{{/unless}}
</div>
</template>
延迟是因为第一次呈现模板时 Meteor.user()
对象尚未完全加载。然后它加载并反应性地交换部分。
您需要在加载用户对象时显示加载 screen/spinner。如何执行此操作取决于您使用的路由器。
我相信这就是 Michael 的建议。将您的模板包装在:
{{#if Template.subscriptionsReady}}
{{/if}}