2014-04-17 5 views
5

우선 먼저 유성과 함께 완전한 멍청한 마음으로 시작하겠습니다. 이제 문제가 시작될 때까지 ...Meteor.js - 렌더링하기 전에 로그인 상태를 확인하십시오.

두 페이지, '/'에 스플래시 페이지, '/ 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']}); 

희망이 있습니다.

+0

업 그레 이드 meteor> 1.0 이후 this.next()를 추가해야 함 more here http://stackoverflow.com/questions/26629835/meteor-v-1-0-and-ironrouter –

답변

3

fast-render을 사용하는 것이 해결책 일 수 있습니다. 그냥 실행하십시오

mrt add fast-render 

이 항목에 대한 내용은 this great article입니다.

+0

이것은 완벽합니다. 서버를 설치하고 신속하게 재부팅해야합니다. 정말 고맙습니다. – BobFranz

관련 문제