mithril.js 如果未连接则重定向用户
mithril.js redirect user if not connected
如何在用户尚未连接时使用 mithril.js 及其路由系统将我的用户重定向到登录表单?
我定义了一些路由:
m.route.mode = 'search';
m.route(document.getElementById('app'), "/", {
'/': LoginForm,
'/orders': OrderList,
'/order/new': OrderForm,
'/order/:orderId': OrderForm
});
但是我想重定向 /orders 和其他路由到 / 如果用户没有登录。
我是否需要将代码放入控制器(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('....');
}
}
你应该把重定向到控制器。
在这种情况下,在 requestAnimationFrame 之前调用重定向,因此您将被重定向到适当的控制器并呈现适当的视图。
如果在视图中重定向,您可能没有正确重定向,无论如何都会呈现视图。
如何在用户尚未连接时使用 mithril.js 及其路由系统将我的用户重定向到登录表单?
我定义了一些路由:
m.route.mode = 'search';
m.route(document.getElementById('app'), "/", {
'/': LoginForm,
'/orders': OrderList,
'/order/new': OrderForm,
'/order/:orderId': OrderForm
});
但是我想重定向 /orders 和其他路由到 / 如果用户没有登录。
我是否需要将代码放入控制器(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('....');
}
}
你应该把重定向到控制器。
在这种情况下,在 requestAnimationFrame 之前调用重定向,因此您将被重定向到适当的控制器并呈现适当的视图。
如果在视图中重定向,您可能没有正确重定向,无论如何都会呈现视图。