暂停角度间隔,然后恢复

时间:2015-09-08 00:00:41

标签: angularjs intervals

我有一个我每10秒重复一次的功能。这很好用。它显示订单。现在我想要一个接受订单功能。但是当点击它时我想要暂停间隔。当接受订单返回时,我想再次恢复此间隔。

这样做的最佳方式是什么?

我的代码

    if ($auth.isAuthenticated()) {
    //request
    $scope.checkNewOrders = function (){
        newOrderService.getNewOrders().then(function (response) {
            //console.log(response.data.status);
            if (response.data == 'token_error') {
                $auth.logout();
            }

            if (response.data.status == 'success') {
                $rootScope.openOrders = response.data.data;
            }

            if (response.data.status == 'no_orders') {
                $rootScope.openOrders = false;
            }
        });
    };

    //Put in interval, first trigger after 10 seconds
    $interval(function(){
        $scope.checkNewOrders();
    }.bind(this), 10000);

    //invoke initialy
    $scope.checkNewOrders();
}

$scope.acceptOrder = function(orderid) {
    console.log(orderid);
}

1 个答案:

答案 0 :(得分:9)

您应该创建$interval的变量:

from backend.application import myobject

然后在点击功能中,var timer = null; $scope.checkNewOrders = function (){ ... timer = $interval(function(){ $scope.checkNewOrders(); }.bind(this), 10000); 计时器:

cancel

更新完成后,继续:

$scope.acceptOrder = function(orderid) {
    $interval.cancel(timer);
    timer = null;
}