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

标签 javascript meteor iron-router

首先让我们从我是一个完全的 Meteor 菜鸟这个事实开始。既然已经解决了问题,那就让问题开始吧……

我有两个页面,一个位于“/”的醒目页面和一个位于“/home”的主页。我正在使用 iron-router 进行路由。现在,如果我没有登录并在启动页面上登录,我将它重定向到主页,这有效。现在,如果我关闭浏览器并重新打开并转到“/”,它会加载几秒钟,然后意识到我实际上仍处于登录状态,然后将我重定向到“/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']});

希望这对您有所帮助。

最佳答案

使用 fast-render 可能是一种解决方案。就跑

mrt add fast-render

检查 this great article关于这个话题。

关于javascript - Meteor.js - 在渲染前检查登录状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23139627/

相关文章:

javascript - 如何使用淡入/淡出更改 div 背景颜色?

javascript - 覆盖javascript css

javascript - 按两个标准对多维数组进行排序?

javascript - 在 Meteor 方法中的 Promise 之后插入集合

javascript - Meteor:实例化一个Session,没有点击事件

meteor - Handlebars + meteor +铁路由器

javascript - 在 Ember 中表示模型的数组

Nitrous 上的 meteor - meteor 'Assets' 的路径?

javascript - Meteor {{#if currentUser}} 的行为不符合预期

javascript - Meteor 加载脚本,特定于页面的 CSS