2013-07-10 27 views
5

Tôi có một bộ điều khiển được gắn vào một tuyến đường. Bộ điều khiển liên tục thăm dò ý kiến ​​máy chủ sử dụng $timeout. Khi tuyến đường thay đổi, tôi cần dừng bỏ phiếu và bắt đầu lại khi tuyến đường thay đổi trở lại.phát hiện khi bộ điều khiển tuyến đường angularjs nằm ngoài phạm vi?

Vui lòng trợ giúp.

Đây là mã của tôi:

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

Trả lời

3
  • Lưu giá trị trả về (một lời hứa) từ $timeout (một $ tài sản phạm vi).
  • Đăng ký trình xử lý sự kiện $destroy trên phạm vi của bạn.
  • Gọi cancel() vào lời hứa $ timeout đó khi trình xử lý sự kiện kích hoạt.

Khi tuyến đường thay đổi trở lại, bộ điều khiển sẽ được tạo lại, do đó mã hiện tại của bạn sẽ bắt đầu lại bỏ phiếu.

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