2016-12-12 5 views
0

문제 설명 : 3 개의 탭을 사용하고 있습니다. 탭 -a, 탭 -b 및 탭 -c. 각 탭에는 문서로드시 웹 API에 대한 5-6 개의 서비스 호출이 있습니다. 내 문제는, 탭을 클릭하면 - 탭에서 - a..calls - 경로의 변경에 신속하게 시작합니다. 탭 - sametime을 클릭하면 이전 통화가 진행 중이며 탭 -b에서 6 개 이상의 새로운 통화가 추가됩니다. 전환 경로에서 이전 호출을 탭 -A에서 중단하고 싶습니다. 그것은 내 Angular SPA의 성능에 영향을주기 때문입니다.각도로 경로를 전환하는 중에 서비스 호출을 중단하십시오.

각도 js 라우팅을 사용하고 있습니다.

app.config(function ($routeProvider) { 
$routeProvider 
.when('/daily', 
{ 
    title: 'Daily - Stats', 
    templateUrl: '/SPA/Daily.html' 
}) 
.when('/weekly', 
{ 
    title: 'Weekly - Stats', 
    templateUrl: '/SPA/Weekly.html' 
}) 

웹 API에서 데이터를 가져오고 게시하는 서비스가 하나 있습니다.

+0

어쩌면 당신을 도울 수 있습니다. http://stackoverflow.com/questions/13928057/how-to-cancel-an-http-request-in-angularjs – LorenzoBerti

+0

내 시나리오에서는 문제가 없지만 작동하지 않습니다. 친절하게도 위의 흐름에 따라 코드 조각을 제안 해주세요. 친절한 답변을 주셔서 감사합니다. –

답변

0

당신은 (내가 코드를 테스트하지 않았습니다) 처럼 $의 routeprovider에서 해결을 사용할 수

.when('/daily', 
{ 
title: 'Daily - Stats', 
templateUrl: '/SPA/Daily.html', 
resolve: { 
    foo: function($http){ 
     $http.pendingRequests.forEach(function (pendingReq) { 
     //here cancel pendingReq like pendingReq.resolve() 
    } 
} 

또는 당신은 RoutechangeStart를 사용할 수 있습니다.

이 게시물에 더도 찾을 수 있습니다 AngularJS abort all pending $http requests on route change

+0

고마워요, 일하고 있습니다 ...... –

+0

환영합니다, 같은 문제가있는 다른 사람들에게 대답을 받아 들여야한다는 것을 기억하십시오. – LorenzoBerti

관련 문제