8
我有一个函数,我每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);
}
您可以将'$ interval'的返回值传递给'$ interval.cancel'来取消间隔。你也可以在interval函数内部有一个分支,如果设置了一个布尔标志,它将返回并且什么也不做。 –