Blaze中的If/Else逻辑导致在Meteor中的页面之间导航时,经过身份验证的用户页面闪烁
我有这个主布局Blaze中的If/Else逻辑导致在Meteor中的页面之间导航时,经过身份验证的用户页面闪烁,meteor,meteor-blaze,meteor-accounts,Meteor,Meteor Blaze,Meteor Accounts,我有这个主布局 <!-- Wrapper--> <div id="wrapper"> {{#if currentUser }} <!-- Page wrapper --> {{> topNavbar }} <!-- Navigation --> {{> navigation }} <!-- Page wraper --> <div id="p
<!-- Wrapper-->
<div id="wrapper">
{{#if currentUser }}
<!-- Page wrapper -->
{{> topNavbar }}
<!-- Navigation -->
{{> navigation }}
<!-- Page wraper -->
<div id="page-wrapper" class="gray-bg">
<!-- Main view -->
{{> yield}}
</div>
<!-- End page wrapper-->
<!--{{> rightSidebar }}-->
{{else}}
{{> loginPage }}
{{/if}}
</div>
<!-- End wrapper-->
{{{#如果当前用户}}
{{>topNavbar}}
{{>导航}
{{>产量}
{{else}
{{>loginPage}
{{/if}
如果用户未登录,则显示登录页面的目的显而易见。一种意想不到的效果是,当用户在某些页面/路线之间导航时,偶尔会显示登录页面半秒或两秒
我相信有一个办法可以做到这一点与订阅,但只是还没有得到他们的流星尚未。。。我想知道是否有一个忍者会看到这一点,嘲笑可以传递一个快速的提示
谢谢
我已经看到了,但我希望有一种不用路由就能解决这个问题的方法——我可以将代码添加到主模板javascript文件中吗?问题是,没有登录和未登录两种状态。客户端登录时还存在中间状态。为了说明这一点,有一个
{{loggingIn}
助手,您可以将其用作:
<!-- Wrapper-->
<div id="wrapper">
{{#if currentUser }}
<!-- Page wrapper -->
{{> topNavbar }}
<!-- Navigation -->
{{> navigation }}
<!-- Page wraper -->
<div id="page-wrapper" class="gray-bg">
<!-- Main view -->
{{> yield}}
</div>
<!-- End page wrapper-->
<!--{{> rightSidebar }}-->
{{else}}
{{#if loggingIn}}
loading...
{{else}}
{{> loginPage }}
{{/if}}
{{/if}}
</div>
<!-- End wrapper-->
而不是
<!-- This still gets into the DOM, but not rendered by the browser -->
Meteor.user()我猜它在闪烁,因为没有立即可用的Meteor.user()。如果您使用MeteoHacks的软件包fast render
,它可以立即使用,并且应该可以停止闪烁。在没有快速渲染的情况下,您还可以监听并检查用户是否未登录,并且只有在您有数据检查是否有用户后,才可以使用return Meteor.user()进行订阅代码>?然后,您还可以配置路由器,以便在等待订阅数据时显示加载模板。我们将在下周对此进行测试,很抱歉延迟!
<!-- This still gets into the DOM, but not rendered by the browser -->