当用户尚未连接时,如何使用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('....');
}
}发布于 2015-11-07 03:52:58
你应该把方向调到控制器。
在这种情况下,重定向是在requestAnimationFrame之前调用的,因此您被重定向到适当的控制器并呈现适当的视图。
在视图重定向的情况下,您可能没有正确地重定向,视图无论如何都会呈现出来。
https://stackoverflow.com/questions/33574816
复制相似问题