2013-07-10 7 views
5

私はルートに接続されたコントローラを持っています。コントローラーは常に$timeoutを使用してサーバーをポーリングします。ルートが変わったら、ポーリングをやめて、ルートが戻ったら再び開始する必要があります。anglejsルートコントローラが範囲外になったときを検出しますか?

助けてください。 ($スコーププロパティに)$timeoutから

(angular 
.module('app.controllers', ['ng', 'ngResource']) 
.controller('myContr', [ 
    /******/ '$scope', '$resource', '$timeout', 
    function ($scope, $resource, $timeout) { 
     function update() { 
      $resource('my-service').get({}, function (d) { 
       // ...use data... 
       $timeout(update, UPDATE_INTERVAL); 
      }); 
     }; 
     update(); 
    } 
]) 
); 

答えて

3
  • 保存戻り値(約束):

    は、ここに私のコードです。

  • 対象範囲に$destroyイベントハンドラを登録します。
  • イベントハンドラがトリガされたときに$ timeout約束してcancel()を呼び出します。

ルートが変更されると、コントローラが再作成されるため、既存のコードでポーリングが再開されます。

関連する問題