2017-07-17 14 views
3

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> 

私はクリックボタンの後に$タイムアウトを停止したいです。私のコードは動作しません。 事前にお返事ありがとうございます!

答えて

4

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); 
     }; 

    }); 
+1

ありがとう、あなたは私を助けました – bafix2203

関連する問題