mithril.js redirect user if not connected

狂风中的少年 提交于 2020-01-06 02:18:08

问题


How to use mithril.js and it's routing system to redirect my user to the login form when the user is not yet connected?

I define some routes:

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

But I want to redirect /orders and other routes to / if the user has not login.

Do I need to put the code in the controllers (OrderList.controller and OrderForm.controller)? or in the views (OrderList.view and 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('....');
     }
}

回答1:


You should put redirect to the controllers.

In this case redirect is called before requestAnimationFrame, so you are redirected to appropriate controller and appropriate view is rendered.

In case redirecting in the views, you probably are not redirected properly, view is rendered anyway.



来源:https://stackoverflow.com/questions/33574816/mithril-js-redirect-user-if-not-connected

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!