如何在按下刷新按钮时阻止调用服务

时间:2014-07-10 11:03:21

标签: javascript jquery angularjs angularjs-scope angularjs-service

我有角度问题。我已经提供了一项服务,该服务应该验证用户服务有两个变量var isAuthvar IsAdmin;,表示用户的状态。

在Login控制器中我设置这些变量的值取决于请求状态然后我有$locationChangeStart事件,我已经在其中注入了服务,因此我可以访问isAuth和{{1确定用户是否可以访问该路由,直到现在一切正常。

问题是,当我点击刷新按钮时,服务被再次调用,当然没有登录控制器,因此IsAdminisAuth都变得未定义任何想法我应该怎么做以防止这种情况。

以下是该服务的代码。

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

0 个答案:

没有答案