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

Can we provide two entry points for single page application?

我正在开发单页应用程序。我们的第一个页面是登录页面,我们在其中输入用户名和密码。

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

他们需要我们的应用程序的两个 URL。一种用于管理员用户,另一种用于普通用户。

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

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

您可以像这样为登录路由设置一个动态路由器:

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

我已经根据我的项目框架修改了你的代码。

我在应用程序初始化期间给出了以下内容:

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);
}

我希望这个方法是正确的:)