2014-02-21 3 views
0

나는 angularjs를 사용하여 프로젝트를 개발 중입니다. 웹 서비스 호출에 ngResource를 사용하고 있습니다. 내 응용 프로그램에는 매 30 초마다 실행되는 웹 서비스 호출이 있습니다. 이제는 어떤 상황에서 자동으로 실행되는 사용자 작업 및 웹 서비스에 의해 호출되는 웹 서비스가 서로 충돌하는 문제에 직면하고 있습니다. 나는 그것을 피하고 싶다. 내가 어떻게 해?Angularjs ngResource 여러 웹 서비스 호출 충돌

setInterval(function() { 
         $scope.getAllReports(); 
        } 
        }, 30000); 



reportService.factory('Reports', function ($resource, AppSettings) { 
    return $resource(AppSettings.api_url + 'reports/:reportId', { 
     reportId: '@reportId' 
    }, { 
     getReports: { 
      method: 'POST' 
     } 

    }); 
}); 

데모 모든

http://jsfiddle.net/Kn3Tc/79/

답변

0

먼저 확인하시기 바랍니다, 당신은 $interval (window.setInternal을위한 각도의 래퍼)

그것은 보장을 사용하는 것이 좋습니다 범위에 대한 변경 것이다 다른 곳에서 반사 될 수 있습니다. 컨트롤러에서

당신은 또한 당신의 간격을 사용자가 수동으로 (내가 당신이 원하는 정확하게 무엇을 이해 경우) 충돌을 방지하기 버튼을 클릭 할 때마다 재설정 수 :

var interval; 
function startInterval() { 
interval = $interval(function() { 
     $scope.results = myService.get(); 
    }, 30000); 
} 

    $scope.advanceSearch = function() { 
     $scope.results = myService.get(); 
     $interval.cancel(interval); 
     startInterval(); 
    }; 
    startInterval(); 

은 또한 $ 간격을 추가하는 것을 잊지 해달라고을 의존성으로서.

링크 : http://plnkr.co/edit/AuLJjiSLsscimvZC5Spi