我有一个应用程序,我必须在其中显示页面超时计时器进度条。我是用$ interval做的。但是当我从一个状态转到另一个状态时,$ interval不会被清除,并且会显示上一页的会话超时。我在控制器中使用$ interval函数来实现计时器功能。我也取消了相同的页面销毁。这是下面的代码片段,
$scope.obj.updateProgressBar = function () {
$scope.obj.showTimer = true;
intervalPromise = $interval(function () {
if ($scope.obj.currentTime < $scope.obj.max) {
$scope.obj.currentTime += 1;
$scope.obj.diff = $scope.obj.max - $scope.obj.currentTime;
$scope.obj.m = ($scope.obj.diff / 60) >> 0;
$scope.obj.s = ($scope.obj.diff - $scope.obj.m * 60) + '';
$scope.obj.s = ($scope.obj.s).length >= 1 ? $scope.obj.s : '0';
} else {
$scope.obj.timeout=true;
$interval.cancel(intervalPromise);
$scope.togglePopup();
$scope.open('sm', 'sessionTimeoutTemplate');
}
}, 1000,timerDuration+1);
};
$scope.obj.updateProgressBar();
}
$scope.$on('$destroy',function(){
if(intervalPromise)
$interval.cancel(intervalPromise);
});
请帮助我,我可以做些什么来消灭$ interval。
谢谢, 图莎尔