我有角度问题。我已经提供了一项服务,该服务应该验证用户服务有两个变量var isAuth
和var IsAdmin;
,表示用户的状态。
在Login控制器中我设置这些变量的值取决于请求状态然后我有$locationChangeStart
事件,我已经在其中注入了服务,因此我可以访问isAuth
和{{1确定用户是否可以访问该路由,直到现在一切正常。
问题是,当我点击刷新按钮时,服务被再次调用,当然没有登录控制器,因此IsAdmin
和isAuth
都变得未定义任何想法我应该怎么做以防止这种情况。
以下是该服务的代码。
IsAdmin
她是控制者的代码。
app.factory('authService', ['api','$cookieStore', function(api, $cookieStore){
var AuthentoctionControllerUrl = "http://localhost:18678/api/Authentication/";
var isAuth;
var IsAdmin;
function Login(credential){
return api.Post(AuthentoctionControllerUrl + "ByPassword" ,null , credential);
};
var Logout = function() {
$cookieStore.remove('AuthorizationHeader');
isAuth = false;
};
var AccessPrivilegesAdmin = function(route_type){
if(this.IsAdmin == true){
return true;
}
else if( route_type=="public"){
return true;
}
else{
return false;
}
};
var AccessPrivilegesAuth = function(){
return isAuth;
};
return {
Login : Login,
Logout : Logout,
isAuth : isAuth,
IsAdmin : IsAdmin,
AccessPrivilegesAuth : AccessPrivilegesAuth,
AccessPrivilegesAdmin : AccessPrivilegesAdmin
};
}]);