Javascript 如何使用Meteor/Iron Router/Spacebar防止模板闪烁?

Javascript 如何使用Meteor/Iron Router/Spacebar防止模板闪烁?,javascript,meteor,sails.js,iron-router,spacebars,Javascript,Meteor,Sails.js,Iron Router,Spacebars,我希望任何未经身份验证的用户都能在默认的/路线上看到主页模板(它在名为main的布局模板中呈现)。但是如果currentUser存在,我希望/是不同的(仪表板模板) 这是我提出的一个解决方案,它正在工作,但有一个主要缺陷,我将在后面描述 我制作了一个应用程序模板,并设置了/路径 在app模板中,我只有这个 <template name="app"> {{#if currentUser}} {{> dashboard}} {{else}} {{> h

我希望任何未经身份验证的用户都能在默认的
/
路线上看到
主页
模板(它在名为
main
的布局模板中呈现)。但是如果
currentUser
存在,我希望
/
是不同的(
仪表板
模板)

这是我提出的一个解决方案,它正在工作,但有一个主要缺陷,我将在后面描述

  • 我制作了一个
    应用程序
    模板,并设置了
    /
    路径
  • app
    模板中,我只有这个

    <template name="app">
      {{#if currentUser}}
        {{> dashboard}}
      {{else}}
        {{> home}}
      {{/else}}
    </template>
    
    
    {{{#如果当前用户}}
    {{>仪表板}
    {{else}
    {{>主页}
    {{/else}
    
  • 它正常工作,但每次登录时,我都能看到
    主页
    模板的闪光,然后才能看到
    仪表板
    一个。我用的是熨斗:路由器。对于这种情况,什么是更好的方法

    基本上,我希望
    仪表板
    主页
    都在同一条路径上
    /
    ,这取决于用户是否登录。在Sails.js中,我可以使用一种叫做策略的东西。有什么可以在路由器本身上强制执行这些规则,而不是在两个适当的规则之间使用辅助模板

    @编辑: 我在考虑三种可能的解决方案:

  • 在路由器本身而不是助手模板上强制执行这些规则
  • 在完成逻辑和正确加载仪表板之前,强制浏览器等待渲染
    app
    模板
  • 显示某种进度加载器足够长的时间,以便
    仪表板
    可以正确加载

  • 使用熨斗路由器加载模板。或者检查用户是否正在登录,然后显示微调器?使用熨斗路由器加载模板。或者检查用户是否正在登录,然后显示微调器?