Meteor.js - 在渲染之前检查登录状态

Bob*_*anz 5 javascript meteor iron-router

首先,让我们开始说明我是Meteor的完整菜鸟.现在,这就是问题的开始......

我有两个页面,'/'的启动页面和'/ home'的主页.我正在使用铁路由器进行路由.现在,如果我没有登录并在启动页面上登录,我将其重定向到主页,这是有效的.现在,如果我关闭浏览器并重新打开并转到'/'它会加载几秒钟,然后意识到我实际上仍然登录,然后将我重定向到'/ home'.

我的问题是,当我已经登录时,如何摆脱'/'上的初始显示?我只想向没有登录的人显示该页面.这是我在路由器中的代码:

    Router.configure({layoutTemplate: 'mainLayout'});

Router.map(function() {
  this.route('splash', {path: '/'});
  this.route('home');
});

var mustBeSignedIn = function(pause) {
  if (!(Meteor.user() || Meteor.loggingIn())) {
    Router.go('splash');
    pause();
  }
};

var goToDashboard = function(pause) {
  if (Meteor.user()) {
    Router.go('home');
    pause();
  }
};

Router.onBeforeAction(mustBeSignedIn, {except: ['splash']});
Router.onBeforeAction(goToDashboard, {only: ['splash']});
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

Hub*_* OG 3

使用fast-render可能是一个解决方案。赶紧跑

mrt add fast-render
Run Code Online (Sandbox Code Playgroud)

查看有关该主题的这篇精彩文章。