2013-07-07 11 views
6

私は$timeoutを使用して、私のangularjsアプリケーションのページの情報を日常的に更新します。ユーザーがこのページから移動するときに$timeoutをキャンセルしたいのですが。それを行う簡単な方法はありますか?

答えて

12

[OK]を、私は周りに掘った後、解決策を見つけた:

$scope.$on('$destroy', function() { 
    $timeout.cancel(timeout); 
}); 

または角1.5での新しいコンポーネントの構文について:

this.$onDestroy = function() { 
    if (timeout) { 
     $timeout.cancel(timeout); 
    } 
} 
+4

感謝。明確にするために、 'timeout'変数は' $ timeout(...) '呼び出しによって返されたタイマーIDです。関連する質問については、http://stackoverflow.com/questions/14897608/cancel-a-angularjs-timeout-on-routechange?rq=1を参照してください。 – tuomassalo

関連する問題