2014-04-24 4 views
0

아래 코드는 여러 개입니다. 어떻게 모두 결합 할 수 있습니까? $ scope.mydata 또는 심지어 전역 변수 mydata는 $ http 외부에서 액세스 할 수 없으므로

$http({ 
    url: "php/mainLoad.php", 
    method: "GET", 
    params: {"userId":"1"} 
    }).success(function(data, status, headers, config) { 

     $scope.mydata = data; 
     mydata = data; 
    }).error(function(data, status, headers, config) { 
     // $scope.status = status; 
     alert(status); 
    }); 
+0

무엇을 결합할까요? 질문을 명확히 할 수 있습니까? 또한 더 많은 코드가 도움이 될 것입니다. – smk

+0

@smk $ http를 사용하여 여러 번로드하는 방법은 무엇입니까? – user3522444

답변

0

약속을 사용하십시오. $ http는 $ q 객체와 같은 약속입니다. 먼저, 분사 $ q를, 다음을 수행하십시오 모든 통화 (약속)가 해결 될 때 .then(function...에서

call1 = $http ({}); 
call2 = $http ({}); 
call3 = $http ({}); 

$q.all ([call1, call2, call3]) 
.then(function(response) { 
    responseFromFirstCall = response[0]; 
    responseFromSecondCall = response[1]; 
    responseFromThirdCall = response[2]; 
}, function(errResponse) { 
    firstErrorResponse = errResponse; 
}); 

기능은 실행됩니다. 호출이 거부되면 두 번째 함수가 호출하고 errResponse는 첫 번째 거부 된 호출의 응답이됩니다. 이 두 번째 매개 변수, 즉. 두 번째 기능은 선택 사항입니다.

+0

초기화 할 필요가 없습니다. q? 나는 $ q를 얻지 못한다. – user3522444

+0

처음에는 잡기가 매우 어렵지만 매우 편리합니다. https://docs.angularjs.org/api/ng/service/$q에서 $ q를 읽을 수 있습니다. 앞서 말했듯이 $ http는 .success 및 .error와 같은 일부 다른 기능 (예 : replaceble)과 함께 $ q의 인스턴스이기도합니다. –

관련 문제