我有这个主要布局
<!-- 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中......但是想知道是否有一个忍者会看到这个和scoff可以通过快速提示
谢谢!
我见过How to get rid of Meteor template flickers,但我希望有一种方法可以在没有路由的情况下解决这个问题 - 我可以将代码添加到主模板javascript文件中吗?
答案 0 :(得分: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 -->