关闭模态时如何停止$ interval($ uibModal)

时间:2018-08-01 12:33:30

标签: angularjs

我间隔了: $interval($scope.sendGetRequest, 1500) 该函数每1500ms发送一次$ http.get请求。我想在关闭模式时停止此间隔,因为即使我正在关闭模式,它仍在间隔内发送请求。

关闭模态时会触发什么事件,所以我可以在那里停止间隔?

**我在模态作用域内,我想在模态关闭之前在该范围内停止间隔。

3 个答案:

答案 0 :(得分:0)

您必须将间隔定义存储在变量中。

var myInterval = $interval(function() {
  // Do something
}, 1500);

然后,当您要停止它时,请使用cancel的{​​{1}}方法。

$interval

Documentation

答案 1 :(得分:0)

在您的控制器中:

$scope.openDialog = function () {
    var dialogIns = function () {
        var dialogInstance = $uibModal.open({
            animation: true,
            templateUrl: 'modalHtmlPage.html',
            controller: 'modalController',
        });
    };
}

并在模式控制器中:

var intVal = $interval(function () {
    //$http.get request
}, 1500);

$scope.closeModal = function () {
       $interval.cancel(intVal);
       $uibModalInstance.close();
    }

答案 2 :(得分:0)

您可能想在$ scope被销毁(模式关闭)时停止$ interval。

这应该在模态控制器的内部:

  var poll = $interval($scope.sendGetRequest, 1500);
  $scope.$on('$destroy', stopPolling);

  function stopPolling() {
      $interval.cancel(poll);
  };