2013-07-07 30 views
6

Tôi sử dụng $timeout để thường xuyên cập nhật thông tin trên một trang trong ứng dụng angularjs của tôi. Tôi muốn hủy $timeout khi người dùng điều hướng khỏi trang này. Có cách nào đơn giản để làm điều đó không?

Trả lời

12

Ok, tôi thấy các giải pháp sau khi đào bới xung quanh:

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

Hoặc cho cú pháp thành phần mới trong góc 1.5:

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

Cảm ơn. Để làm rõ, biến 'timeout' là id bộ định thời, được trả về bởi cuộc gọi' $ timeout (...) '. Xem http://stackoverflow.com/questions/14897608/cancel-a-angularjs-timeout-on-routechange?rq=1 để biết câu hỏi liên quan. – tuomassalo

Các vấn đề liên quan