单页应用:登录后返回

时间:2017-02-27 07:47:07

标签: angularjs angular-ui-router single-page-application

需要你的建议。

我有angularjs app,使用ui.router进行路由。

首先向用户显示登录屏幕,登录时会显示网格。 网格是分页的。

现在,如果用户点击浏览器后退按钮,则用户将进入登录屏幕。
这是正确的行为,你会建议否则。
2.此外,如果用户使用分页移动到3页,则后退按钮会将用户带到上一页。

提前致谢

1 个答案:

答案 0 :(得分:1)

1。)您可以使用$stateChangeStart阻止客户端返回登录状态。例如:

/**
 * Before state change / page switch
 */
$rootScope.$on("$stateChangeStart", function (event, next, current, fromState, fromParams, options) {

    //verify login state
    if ($cookies.get('loggedIn') !== undefined) {
        if (next.templateUrl !== "views/login.html") {
            $timeout (function () {
                event.preventDefault();
                $state.go('app.overview');
            }, 50);
        }
    }
});

2.。)为您的分页内的所有页面创建一个URL,以便用户可以使用浏览器历史记录返回/转发:

.state('app.list', {
    url: '/list/:pageId',
    templateUrl: 'views/list.html'
})

使用notify: false

更改页面上的URL,而无需重新加载
$state.go('app.list', {pageId: yourNextdPageId}, {notify: false})