【问题标题】:If/Else logic in Blaze causing authenticated user page flickers when navigating between pages in MeteorBlaze 中的 If/Else 逻辑在 Meteor 中的页面之间导航时导致经过身份验证的用户页面闪烁
【发布时间】:2015-10-28 07:09:52
【问题描述】:

我有这个主要布局

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

如果用户未登录,则显示登录页面的明显目的。一个意想不到的效果是,当用户在某些页面/路线之间导航时,它偶尔会显示登录页面半秒或两秒。

我确信有一种方法可以通过订阅来做到这一点,但只是还没有在 Meteor 中获得它们...想知道是否有一个忍者会看到这个并嘲笑它可以传递一个快速提示.

谢谢!

我见过How to get rid of Meteor template flickers,但我希望有一种方法可以在不使用路由的情况下解决这个问题——我可以将代码添加到主模板 javascript 文件中吗?

【问题讨论】:

  • 我猜它在闪烁,因为没有可用的Meteor.user()。如果您使用meteorhacks 的包fast-render 它可以立即使用并且应该停止闪烁。如果没有快速渲染,您还可以侦听检查用户是否不是loggingIn,并且只有在您拥有数据后才能检查是否有用户。
  • 也许您可以在客户端放置一个waitOn并使用return Meteor.user();订阅?然后你也可以配置路由器在等待订阅数据时显示加载模板

标签: meteor meteor-blaze meteor-accounts


【解决方案1】:

问题是,没有登录和未登录两种状态。还有客户端登录的中间状态。为此,有一个 {{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-->

同样在不相关的注释上,您可以使用

{{!-- Spacebars comments do not get into the DOM --}}

而不是

<!-- This still gets into the DOM, but not rendered by the browser -->

【讨论】:

  • 将在下周进行测试,抱歉耽搁了!
猜你喜欢
  • 2011-08-22
  • 2012-05-25
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
相关资源
最近更新 更多