Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度服务无法执行功能_Javascript_Angularjs - Fatal编程技术网

Javascript 角度服务无法执行功能

Javascript 角度服务无法执行功能,javascript,angularjs,Javascript,Angularjs,每次页面刷新时都会加载此loadCredentials(),我会检查它是否在我的angular.run上经过身份验证 function loadUserCredentials() { var token = new Object(); token.token = window.localStorage.getItem(LOCAL_TOKEN_KEY); $http.post("http://localhost:8080/checkTokenValid",token).th

每次页面刷新时都会加载此
loadCredentials()
,我会检查它是否在我的
angular.run上经过身份验证

function loadUserCredentials() {
    var token = new Object();
    token.token = window.localStorage.getItem(LOCAL_TOKEN_KEY);
    $http.post("http://localhost:8080/checkTokenValid",token).then(function(result){
        console.log(result.data.success);
        if(result.data.success){
            useCredentials();
        }
    });
};

我想这是在
loadCredentials
完成之前运行的,所以我总是会得到登录页面。有什么方法可以延迟
角度。运行
?这样我就可以让我的
loadCredentials
检查用户是否拥有有效的令牌

是的,您可以通过$timeout执行此操作:

controlApp.run(function ($location, $rootScope,controlProvider){
    $rootScope.$on('$routeChangeStart',function(event,next,nextParems){
        if (!controlProvider.isAuthenticated()){
            $location.path('/login');
        }
    })
});
controlApp.run(function ($location, $rootScope, controlProvider, $timeout) {
    $rootScope.$on('$routeChangeStart', function (event, next, nextParems) {
        $timeout(function () {
            if (!controlProvider.isAuthenticated()) {
                $location.path('/login');
            }
        }, 500);
    })
});