这是使用$ rootscope将服务存储为变量的正确方法

时间:2016-10-17 11:58:13

标签: angularjs

我有一个函数来处理用户长时间未向服务器发送请求后的注销应用程序(在下面的代码中为CommonConfig.TIME_OUT_TO_LOGOUT)。我使用$ rootScope将logOutInterval存储为变量。但我想知道,如果我使用$ rootScope作为正确的方法。

  • handleSuccess是一个处理请求$ http成功的函数。

抱歉我的英语不好。

function handleSuccess(response) {
            $anchorScroll(); // scroll to top after load API completed
            if ($rootScope.logOutInterval) {
                console.log("Reupdate count down to logout");
                $timeout.cancel($rootScope.logOutInterval);
                $rootScope.logOutInterval = undefined;
            }
            console.log("Start count down to logout at " + new Date());
            $rootScope.logOutInterval = $timeout(function() {
                console.log("Start logout at " + new Date());
                $http({
                    method: 'get',
                    headers: defaultHeader(),
                    url: envConfig.API_HOST + CommonConfig.URI.LOG_OUT
                }).then(function() {
                    toastr.error("Token has expired");
                    PageService.logOutAction();
                });
            }, CommonConfig.TIME_OUT_TO_LOGOUT);
            return $q.resolve(response);
        }

1 个答案:

答案 0 :(得分:2)

如果您只想在控制器之间存储和共享数据,或者比控制器的生命周期更长的东西,最佳做法是使用服务。

如果您只想将数据存储在服务中,则无需使用$ rootScope。