【问题标题】:How to stop $timeout in AngularJS?如何在 AngularJS 中停止 $timeout?
【发布时间】:2017-07-17 09:33:51
【问题描述】:

JS:

var vm = this;
vm.loadNames = function () {
    var promise = service.getNames();
    promise.then(function (data) {
        $scope.names = data.names.data;
        $timeout(vm.loadNames, 5000);
    });
};
var timer = $timeout(vm.loadNames, 5000);
$scope.canceltime = function(){
        $timeout.cancel(timer);
    };

HTML:

<button ng-click="canceltime()"></button>

我想在点击按钮后停止 $timeout。我的代码不起作用。 提前感谢您的回答!

【问题讨论】:

    标签: angularjs timeout


    【解决方案1】:

    您需要在全局范围内声明timer 变量。试试这个代码。这有帮助吗

     var vm = this;
        var timer;
        vm.loadNames = function () {
            var promise = service.getNames();
            promise.then(function (data) {
                $scope.names = data.names.data;
               timer = $timeout(vm.loadNames, 5000);
            });
        };
        $scope.canceltime = function(){
                $timeout.cancel(timer);
            };
    
          $scope.mouseout = function(){
            timer = $timeout(function () {
              $scope.show = false;
            }, 2000);
          };
    
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多