Angularjs定期调用函数?

时间:2017-07-11 08:13:57

标签: javascript angularjs

问题只是定期重新加载身份验证令牌。我正在使用$interval服务。代码如下

function refresh_session() {
    console.log("testing");
}

module.exports = function ($scope,$rootScope,$localStorage,$location,$interval,$http) {

    $interval(refresh_session,5000);

这很好用,但我需要访问$scope$localStorage中的变量来更新令牌。我已尝试将$scope内定义的函数传递给$interval服务,并将参数传递给外部函数。他们俩都没有工作。使用角度方法我可以采用的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您是否可以在导出的函数中放置refresh_session函数?这将允许它访问该函数参数。像这样:

module.exports = function ($scope,$rootScope,$localStorage,$location,$interval,$http) {

    $interval(refresh_session,5000);

    function refresh_session() {
        console.log("testing", $scope, $localStorage);
    }
    ...
};

或者,您可以使用创建refresh_session函数的函数:

function refreshSessionCreator($scope, $localStorage){
    return function(){
        console.log("testing", $scope, $localStorage);
    };
}

module.exports = function ($scope,$rootScope,$localStorage,$location,$interval,$http) {

    $interval(refreshSessionCreator($scope, $localStorage),5000);
    ...
};