我们可以为单页面应用提供两个入口点吗?

时间:2015-05-20 12:49:11

标签: javascript jquery html backbone.js single-page-application

我正在处理单页应用程序。我们的第一页是登录页面,我们输入用户名和密码。

现在,客户向我们提出了一项新要求,即为管理员用户提供单独的登录页面。管理员登录页面中应该有一个额外的下拉列表。

他们的应用需要两个网址。一个用于管理员用户,一个用于普通用户。

据我所知,我们无法在单页面应用程序中添加两个HTML页面。只能更改内部视图。但是我如何识别应该显示哪个登录视图。

我无法想办法做到这一点。请提供任何指导。

2 个答案:

答案 0 :(得分:0)

您可以使用动态路由器进行登录路由,如下所示:

var Router = Backbone.Router.extend({

    routes: {
        "login/:id":        "login"  // #login/user or #login/admin
    },
    login: function(id, page) {
        if(id === "user"){
            //render user login view
        }else if(id === "admin"){
            //render admin login view
        }
    }

});

<强>更新

这是link

答案 1 :(得分:0)

我已按照项目框架修改了您的代码。

我在应用初始化期间提供了以下内容:

var mode = location.hash.substring(1).toLowerCase();
if (mode == "admin") {
    sessionStorage.isAdmin = true;
}
else {
    sessionStorage.isAdmin = false;
}

在渲染视图时,我提供了以下代码:

if (sessionStorage.isAdmin == "true") {
    var template = _.template(adminTemplate);
}
else {
    var template = _.template(loginTemplate);
}

我希望这个apporach是正确的:)