Angular.jsの$intervalと$timeoutとそれぞれのキャンセルの方法を試してみます。
$interval
HTML
<div ng-controller="ctrl"> <button ng-click="start()">開始</button> <button ng-click="stop()">停止</button> {{count}} </div>
JavaScript
angular.module('app', []).controller('ctrl', function($scope, $interval) { $scope.count = 0; var timer; $scope.start = function() { timer = $interval(function() { $scope.count++; }, 1000); }; $scope.stop = function() { $interval.cancel(timer); }; });
使い方はsetInterval()とほぼ同じです。
キャンセルする場合、$interval.cancel(変数名);でキャンセルできます。
$intervalのデモページ
$timeout
HTML
<div ng-controller="ctrl"> <button ng-click="start()">3秒後に追加</button> <button ng-click="stop()">キャンセル</button> {{count}} </div>
JavaScript
angular.module('app', []).controller('ctrl', function($scope, $timeout) { $scope.count = 0; var timer; $scope.start = function() { timer = $timeout(function() { $scope.count++; }, 3000); }; $scope.stop = function() { $timeout.cancel(timer); }; });
キャンセルする場合、$timeout.cancel(変数名);でキャンセルできます。
$timeoutのデモページ
【参考サイト】
コメントが承認されるまで時間がかかります。