2015-11-06 6 views
1

Как использовать mithril.js и его систему маршрутизации перенаправить моего пользователя в форму для входа, когда пользователь еще не подключен?mithril.js перенаправить пользователя, если он не подключен

Я определяю некоторые маршруты:

m.route.mode = 'search'; 
m.route(document.getElementById('app'), "/", { 
    '/': LoginForm, 
    '/orders': OrderList, 
    '/order/new': OrderForm, 
    '/order/:orderId': OrderForm 
}); 

Но я хочу, чтобы перенаправить/заказы и другие маршруты в/если пользователь не войти в систему.

Нужно ли вводить код в контроллеры (OrderList.controller и OrderForm.controller)? или в представлениях (OrderList.view и OrderForm.view)?

window.OrderForm = { 
    controller: function() { 
     var ctrl = this 

     if (/* user not logged */) { 
      m.route('/') 
      return; 
     } 
     // controller code 
    }, 
    view: function(ctrl) { 
     if (/* user not logged */) { 
      m.route('/') 
      return; 
     } 
     // view code 
     return m('....'); 
    } 
} 

ответ

2

Необходимо перенаправить контроллеры.

В этом случае перенаправление вызывается перед requestAnimationFrame, поэтому вы перенаправляетесь на соответствующий контроллер и визуализируется соответствующее представление.

В случае перенаправления в представлениях, вы, вероятно, не перенаправлены должным образом, все равно визуализируется.