2017-01-29 7 views
0

$http.jsonp()リクエストの外で$ scopeまたは$ 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

非同期のajax呼び出しを同期的な方法で動作させることは考慮しないでください。 Ajax /約束が終わるまで待たなければなりません。 .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

@角形の謝罪、答えを更新しました: –

+0

それはまだ印刷されません!私は未定義になる。 – passion

関連する問題