Angularjs 如何防止在用户登录并点击浏览器后退按钮后显示登录页面而不使用ionic framework
我不熟悉anglularjs平台。我正在创建一个Angularjs 如何防止在用户登录并点击浏览器后退按钮后显示登录页面而不使用ionic framework,angularjs,angular-factory,Angularjs,Angular Factory,我不熟悉anglularjs平台。我正在创建一个登录应用程序。我面临着一个问题,所有事情都进展顺利,但我陷入了管理困境,如果用户已经登录并试图在不同的选项卡中打开相同的url,它会将用户直接重定向到dashbord页面(dashboard.html),但当我按下浏览器后退按钮时,它会打开登录页面,而不是进入上一页(login_admin.html)。 场景如下: localhost:8080-->它打开-->login\u admin.html(已实现) 输入凭证并在提交-->时打开-->das
登录应用程序
。我面临着一个问题,所有事情都进展顺利,但我陷入了管理困境,如果用户已经登录并试图在不同的选项卡中打开相同的url,它会将用户直接重定向到dashbord页面(dashboard.html)
,但当我按下浏览器后退按钮时,它会打开登录页面,而不是进入上一页(login_admin.html)
。
场景如下:
localhost:8080-->它打开-->login\u admin.html(已实现)
输入凭证并在提交-->时打开-->dashboard.html(已实现)
在不同的选项卡中输入相同的url(localhost:8080)(假设以前打开过facebook.com)--->打开-->dashbord.html(已实现)
按browser back(浏览器后退)按钮,它将打开login_admin.html(未解析),而不是进入facebook.com
。
请提出一些解决办法
我的js代码如下:
var app=angular.module('myApp', ['ngRoute','ngCookies']);
console.log("in appnew.js")
app.config(function($routeProvider,$locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/',{
templateUrl: 'login_admin.html',
controller: 'userController'
})
.when('/dashboard',{
templateUrl: 'dashboard.html',
controller: 'userController',
authenticated: true
})
.when('/logout',{
templateUrl: 'logout_admin.html',
controller: 'userController'
})
.otherwise({
redirectTo: "/"
});
});
app.controller('userController',function($scope,$location,userModel){
angular.extend($scope,{
login: function(adminfrm){
var data={
jeeb_no: $scope.admin.name,
password: $scope.admin.password
};
userModel.login(data).then(function(){
$location.path('/dashboard');
});
},
logout: function(){
userModel.doUserLogout();
$location.path('/');
}
});
});
app.run(["$rootScope",'$location','userModel', function($rootScope,$location,userModel,$window){
$rootScope.$on('$routeChangeSuccess', function(event, next, current){
console.log("event: %j",event);
console.log("next: %j",next);
console.log('current: %j',current);
if (next.$$route.authenticated) {
console.log("next.$$route.authenticated"+next.$$route.authenticated);
console.log('userModel.getAuthStatus app.run if 1'+userModel.getAuthStatus());
if (!userModel.getAuthStatus()) {
console.log("getAuthStatus"+userModel.getAuthStatus);
console.log('userModel.getAuthStatus app.run if 1(1)'+userModel.getAuthStatus());
$location.path('/');
}
}
if (next.$$route.originalPath =='/') {
console.log("next.$$route.originalPath "+next.$$route.originalPath);
if (userModel.getAuthStatus()) {
console.log("current "+current);
console.log("next "+next);
next.$$route.originalPath = '/dashboard'
$location.path(next.$$route.originalPath);
}
}
});
}]);
app.factory('userModel', function($http,$cookies,$location){
var userModel={};
userModel.login= function(loginfrm){
data={
jeeb_no: loginfrm.jeeb_no,
//password: loginfrm.jeeb_no
};
$cookies.put('auth',data);
console.log("loginfrm"+loginfrm);
return $http.post("http://1/admin_login", data).
success(function(response){
/*console.log('$scope.dynamic1: %j', $scope);*/
console.log("response success: %j",response)
}).
error(function(response){
console.log("response error:",response);
});
};
userModel.getAuthStatus = function(){
var status = $cookies.get('auth');
console.log('status: %j', status);
if(status){
return true;
}
else{
return false;
}
};
console.log('userModel.getAuthStatus'+userModel.getAuthStatus());
userModel.doUserLogout = function(){
$cookies.remove('auth');
}
console.log("userModel: %j",userModel);
return userModel;
})
你能为这个例子创建一个片段吗?我发布的副本可能有一些不使用离子框架的替代品,特别是Rebecca的