2014-04-17 16 views
5

Đầu tiên cho phép chỉ bắt đầu với thực tế rằng tôi là một noob hoàn chỉnh với Meteor. Bây giờ, đó là cách để vấn đề bắt đầu ...Meteor.js - Kiểm tra trạng thái đăng nhập trước khi hiển thị

Tôi có hai trang, một trang giật gân tại '/' và trang chủ tại '/ home'. Tôi đang sử dụng bộ định tuyến sắt để định tuyến. Bây giờ nếu tôi không đăng nhập và trên trang splash và đăng nhập tôi có nó chuyển hướng đến trang chủ này hoạt động. Bây giờ nếu tôi đóng trình duyệt của tôi và mở lại và goto '/' nó tải trong một vài giây sau đó nhận ra rằng tôi thực sự vẫn còn đăng nhập và sau đó chuyển hướng tôi đến '/ home'.

Câu hỏi của tôi là làm cách nào để loại bỏ hiển thị ban đầu này trên '/' khi tôi đã đăng nhập? Tôi chỉ muốn hiển thị trang đó cho những người không đăng nhập. Đây là mã tôi có trong bộ định tuyến của mình:

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

Hy vọng điều này sẽ hữu ích.

+0

hãy nhớ thêm this.next() sau khi nâng cấp thiên thạch> 1.0 thêm tại đây http://stackoverflow.com/questions/26629835/meteor-v-1-0-and-ironrouter –

Trả lời

3

Sử dụng fast-render có thể là giải pháp. Chỉ cần chạy

mrt add fast-render 

Kiểm tra this great article về chủ đề này.

+0

Điều này là hoàn hảo. Cài đặt, khởi động lại nhanh chóng của máy chủ và tất cả là như nó phải được! Cảm ơn bạn rất nhiều. – BobFranz

Các vấn đề liên quan