2013-07-10 18 views
5

Bir rotaya bağlı bir denetleyicim var. Denetleyici sürekli olarak $timeout kullanarak sunucuyu yoklar. Rota değiştiğinde, yoklamayı durdurmalı ve rota değiştiğinde tekrar başlamalıyım., açısal yol denetleyicisinin kapsam dışında kaldığını algılar?

Lütfen

Yardım edin. (A $ kapsam özelliğine) $timeout den

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

cevap

3
  • kaydet dönüş değeri (bir söz):

    İşte benim kodudur.

  • Kapsamınıza $destroy olay işleyicisini kaydedin.
  • Olay işleyicisi tetiklendiğinde bu $ timeout sözüyle ilgili cancel() numaralı telefonu arayın.

Rota değiştiğinde, denetleyici yeniden oluşturulur, böylece varolan kodunuz yeniden yoklamayı başlatır.

İlgili konular