Marionette js在运行时有条件地停止路线或删除路线

时间:2018-01-19 17:08:54

标签: javascript backbone.js marionette

我不确定如何让某些用户远离某些路线。

问题基本上就是这个。假设我有3种用户类型,A,B和C,我的应用程序有10条路由。我希望用户类型A访问路由1到5,用户类型B访问路由6到10,用户类型C访问路由3到7.

问题是在我知道用户类型之前我需要我的路由器,否则我只是有条件地添加每种类型的路由。当我找到类型时,我可以在运行时删除路由吗?有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

嗯,我认为有两种方法可以解决这个问题。 1)你可以添加" beforeRoute"事件到牵线木偶路由器或2)你可以检查你的控制器" show()"如果当前用户具有访问权限。

选项2),可能是这样的:

const Controller = Object.extend({

show (options) {

    //user login params
    if (user) {
       this._showMainView();
    } else {
        // Route back or something
    }
},

_showMainView () {
    this.layout.getRegion('mainRegion').empty().show(new MainView());
}

});