Angularjs - 为$ interval添加时间

时间:2016-03-23 11:05:04

标签: javascript angularjs

我的AngularJS应用程序中有一个超时会话,我希望能够在会话运行时为会话添加时间。

为此,我使用$interval,但是我似乎无法在区间内更改值,这是真的还是我做错了?

    var sessionCountdown,
        session,
        sessionTime;
        timeleft = 0;

    function start() {
        if(session === undefined){
            if(Account.get().isLoggedIn){
                setTimeleft();
            } else {
                $interval.cancel(session);
            }
        }
    }

    function setTimeleft(time){
        if(time === undefined){
            Config.get()
                .then(function(config){
                    sessionTime = config.sessionTime;
                    if(sessionTime !== undefined){
                        timeLeft = sessionTime * 60000;
                        timeout();
                    }
                });
        } else {
            timeLeft = time;
            timeout();
        }
    }

    function timeout(){
        if(session === undefined){
            session = $interval(function(){
                if(timeLeft === undefined){
                    $interval.cancel(session);
                }
                console.info('time : ', timeLeft);
                timeLeft -= 1;
                if(timeLeft <= 0){
                    showModal();
                    $interval.cancel(session);
                    session = undefined;
                }
            }, 1000);     //  60.000 milliseconds = 1 minute.
        }
    }

0 个答案:

没有答案