angular js 应用程序中的后退按钮行为
back button behavior in angular js application
我对用 angularJS 编写的 SPA 应用程序有疑问。该应用程序由三个视图组成 - 登录视图、主视图和注销视图。
- 我的应用程序/#/登录
- myapp/#/main
- 我的应用程序/#/注销
我的路线提供商:
function Router($routeProvider) {
$routeProvider
.when('/login', {
templateUrl: 'app/components/login/login.tmpl.html',
controller: 'login.ctrl',
controllerAs: 'vm'
})
.when('/main', {
templateUrl: 'app/components/dashboard/main.tmpl.html',
controller: 'dashboard.ctrl',
controllerAs: 'vm'
})
.when('/logout', {
templateUrl: 'app/components/logout/logout.tmpl.html',
controller: 'logout.ctrl',
controllerAs: 'vm'
})
.otherwise({
redirectTo: '/login'
});
}
用例:
1)用户登录。
2)用户在主视图中看到的内容
3)用户注销。
4) 用户被重定向到注销视图进行确认
5) 用户被重定向到登录视图
如果我在第 5 步后按后退浏览器按钮,我将被重定向到主视图。当我在登录视图中时,有没有办法改变后退按钮的行为?我相信这很简单,如果问题重复,我深表歉意。感谢您的宝贵时间和回复!
请查看工作示例:http://plnkr.co/edit/46O0znC5HFDE4cYXSm5h?p=preview
登录函数中cookies中存储的数据如下,
$cookies.userinfo = {
'id': 1,
'name': 'pqr'
};
并在注销时删除该数据 -
delete $cookies.userinfo;
然后检查 'angular.isDefined($cookies.userinfo)'(用户信息是在其中存储数据时给出的 cookie 名称),如果找到则将其重定向到您希望在登录后看到的页面。即
app.run(function ($cookies) {
$rootScope.$on("$routeChangeStart", function () {
if (angular.isDefined($cookies.userinfo)) {
$location.path("/pathname");
}
});
});
我对用 angularJS 编写的 SPA 应用程序有疑问。该应用程序由三个视图组成 - 登录视图、主视图和注销视图。
- 我的应用程序/#/登录
- myapp/#/main
- 我的应用程序/#/注销
我的路线提供商:
function Router($routeProvider) {
$routeProvider
.when('/login', {
templateUrl: 'app/components/login/login.tmpl.html',
controller: 'login.ctrl',
controllerAs: 'vm'
})
.when('/main', {
templateUrl: 'app/components/dashboard/main.tmpl.html',
controller: 'dashboard.ctrl',
controllerAs: 'vm'
})
.when('/logout', {
templateUrl: 'app/components/logout/logout.tmpl.html',
controller: 'logout.ctrl',
controllerAs: 'vm'
})
.otherwise({
redirectTo: '/login'
});
}
用例: 1)用户登录。 2)用户在主视图中看到的内容 3)用户注销。 4) 用户被重定向到注销视图进行确认 5) 用户被重定向到登录视图
如果我在第 5 步后按后退浏览器按钮,我将被重定向到主视图。当我在登录视图中时,有没有办法改变后退按钮的行为?我相信这很简单,如果问题重复,我深表歉意。感谢您的宝贵时间和回复!
请查看工作示例:http://plnkr.co/edit/46O0znC5HFDE4cYXSm5h?p=preview
登录函数中cookies中存储的数据如下,
$cookies.userinfo = {
'id': 1,
'name': 'pqr'
};
并在注销时删除该数据 -
delete $cookies.userinfo;
然后检查 'angular.isDefined($cookies.userinfo)'(用户信息是在其中存储数据时给出的 cookie 名称),如果找到则将其重定向到您希望在登录后看到的页面。即
app.run(function ($cookies) {
$rootScope.$on("$routeChangeStart", function () {
if (angular.isDefined($cookies.userinfo)) {
$location.path("/pathname");
}
});
});