2014-04-17 4 views
5

Prima di tutto, iniziamo solo con il fatto che sono un completo noob con Meteor. Ora che è fuori questione lascia che il problema abbia inizio ...Meteor.js - Verifica lo stato di accesso prima del rendering

Ho due pagine, una pagina iniziale in "/" e una home page in "/ home". Sto usando ferro-router per il routing. Ora se non sono loggato e nella pagina iniziale e login ho il reindirizzamento alla home page funziona. Ora se chiudo il mio browser e riapre e goto il '/' si carica per qualche secondo, quindi mi rendo conto che in realtà sono ancora loggato e poi mi reindirizza a '/ home'.

La mia domanda è come sbarazzarmi di questa visualizzazione iniziale sul '/' quando sono già connesso? Voglio solo dimostrare che la pagina per le persone non effettuato Ecco il codice che ho nel mio router:.

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']}); 

Spero che questo aiuti.

+0

Ricordarsi di aggiungere this.next() dopo upgrade mete> 1.0 altro qui http://stackoverflow.com/questions/26629835/meteor-v-1-0-and-ironrouter –

risposta

3

L'utilizzo di fast-render potrebbe essere una soluzione. Basta eseguire

mrt add fast-render 

Controllare this great article su questo argomento.

+0

Questo è perfetto. Installato, riavvio rapido del server e tutto è come dovrebbe essere! Grazie mille. – BobFranz