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 -->