2016-09-07 4 views
0

Я использую Meteor с FlowRouter и я ищу условия, как это:FlowRouter переадресовать, если пользователь вошел в систему, и если путь

Мои текущие маршруты:

Accounts.onLogin(function(){ 
     FlowRouter.go('clients'); 
    }); 
    Accounts.onLogout(function(){ 
     FlowRouter.go('home') 
    }); 

    FlowRouter.triggers.enter([function(context, redirect){ 
     if(!Meteor.userId()){ 
      FlowRouter.go('home') 
     } 
    }]); 


    FlowRouter.route('/', { 
     name: 'home', 
     action(){ 
      BlazeLayout.render('HomeLayout'); 
     } 
    }); 
    FlowRouter.route('/clients',{ 
     name: 'clients', 
     action(){ 
      BlazeLayout.render('MainLayout', {main: 'Clients'}); 
     } 
    }); 

ответ

0
if(Meteor.userId() && FlowRouter.getRouteName() === 'route_name'){ 
    FlowRouter.go('/route_name'); 
} 

В проточных маршрутизаторах есть несколько, чтобы получить текущий маршрут, если вам нужно перестроить приведенное выше утверждение. https://github.com/kadirahq/flow-router/blob/master/README.md

0

Я бы сказал, что вы просто должны изменить FlowRouter.route («/» ...) конфигурация немного:

FlowRouter.route('/', { 
    triggersEnter: [function(context, redirect) { 
    if (Meteor.userId()) { 
     redirect('/clients'); 
    } 
    }], 
    name: 'home', 
    action(){ 
    BlazeLayout.render('HomeLayout'); 
    } 
}); 

Таким образом, любой пользователь авторизованы, который обращается к «/» будет перенаправляться на «клиентов» - отлично работал, когда я его тестировал. Вот некоторая справочная информация в документах потока потока: https://github.com/kadirahq/flow-router/blob/master/README.md#redirecting-with-triggers

Смежные вопросы