2017-01-29 7 views
0

$ 범위 또는 $http.jsonp() 요청 외 $ http에서 성공으로 얻은 데이터에 액세스하려면 어떻게해야합니까?

$http.jsonp('http://example.com/?callback=JSON_CALLBACK') 
    .success(function(data) { 
     $scope.info1 = data.name; 
     $scope.info2 = data.company; 
    }); 

console.log("access it here outside: ",$scope.info1); 

현재 콘솔은 정의되지 않은 내용을 인쇄합니다.

도움 주셔서 감사합니다.

답변

1

비동기식 아약스 호출이 동기식으로 작동한다고 생각해서는 안됩니다. 그 아약스/약속이 끝날 때까지 기다려야합니다. .success/.error은 사용되지 않지만 체인 약속 대신 .then을 사용하십시오.

resolve/reject으로 약속해야합니다.

코드 내가 대신 성공의 무엇을 사용해야

var promise = $http.jsonp('http://example.com/?callback=JSON_CALLBACK') 
promise.then(function(response) { 
    var data = response.data; 
    $scope.info1 = data.name; 
    $scope.info2 = data.company; 
    console.log("access it here outside: ",$scope.info1); 
    myOtherFunction($scope.info1); 
}) 
.catch(function(error) { 
    console.log(error); 
}); 
+0

? 대체 방법을 제공해 줄 수 있습니까? 고마워 – passion

+0

@ someomen 사과, 대답을 업데이 트했습니다 : –

+0

그것은 여전히 ​​인쇄하지 않습니다! 나는 정의되지 않는다. – passion