2017-01-20 7 views
0

私はAngularとRuby on Railsの両方を使用するアプリケーションを持っています。私のAngularコントローラの中には、ユーザーが新しいページに移動するときにキャンセルする必要がある$ intervalタイマーがあります。中でもThisスタックオーバーフローの答えは、最善の解決策は、タイマーと角度のコントローラに以下のコードを挿入することであると述べている:

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

しかし、私はこれを行うと、デバッグするときに、このコードにブレークポイントを設定すると、ブレークポイントに到達することはありません。つまり、$destroyイベントはページの変更では決してトリガーされません。私はこのイベントをトリガする方法、またはユーザーが別のページに移動したときにタイマーを終了するためのより良い方法があるかどうかを知っています。

+0

私は気付きましたが、角度でブレークポイントが動作しないことがあります。あなたはそれがヒットしていないことを確認するためにconsole.logに置き換えてみましたか? –

答えて

0

私はそれがあなたの必要性に合うかどうかわからないんだけど、あなたはこの

  1. を行うことができますが、サービスへの$間隔を引き出します。
  2. トリガするコントローラ/ルート上の サービスを使用して、間隔をトリガします。
  3. ルート変更時にサービスを使用してトリガーをキャンセルします。
関連する問題