0

我一直在为每个$ http请求和url更改进行身份验证。因此,我已实施了URL变化认证码的和平波纹管如何根据angularjs中的条件从控制器重定向页面?

/** login-controller.js file **/ 

//when the form is submitted 
$scope.submit = function() { 
    console.log("enter login submit"); 
    $scope.submitted = true; 
    if (!$scope.loginForm.$invalid) { 
     $scope.login($scope.credentials); 
    } else { 
     $scope.error = true; 
     $scope.error_des = ''; 
     return; 
    } 
}; 

// if a session exists for current user (page was refreshed) 
// log him in again 
if ($window.sessionStorage["userInfo"]) { 
     var credentials = JSON.parse($window.sessionStorage["userInfo"]); 
     $scope.login(credentials); 
}; 

//Performs the login function, by sending a request to the server with the Auth service 
$scope.login = function(credentials) { 

    $scope.error = false; 
    Auth.login(credentials, function(user) { 
     //success function 
     $mdDialog.hide(); 
     $state.go("admin-panel.default.home"); 
    }, function(err) { 
     console.log("error"); 
     $scope.error_des = err.msg; 
     $scope.error = true; 
    }); 
}; 

一切工作如我所料,但同时reloding在同一页it'l总是重定向到家庭(http://localhost:3000/#/home).i知道它会发生,因为

$state.go("admin-panel.default.home"); 

麻烦的是,我想根据登录方式重定向页面let'say,如果用户通过提交表单登录,将重定向到$ state.go(“admin-panel.default.home”); 如果用户通过会话登录存在当前用户,将被重定向到$ state.go(“admin-panel.defau lt;“+ $ current_page);

如何实现它?请帮帮我????

回答

0
If form submit : var formsubmitted = true; 
if login via session : formsubmitted = false 
and while routing you can check condition 
if(formsubmitted == true) 
    $state.go("admin-panel.default.home"); 
else 
$state.go("admin-panel.default."+$current_page); 
//to get current page path you can use $location.path(); 
相关问题