2017-01-29 47 views
0

如何访问$ scope或$ http成功从$http.jsonp()请求中获得的数据?

$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/promise完成。虽然不使用.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

@someangular道歉,更新了答案:) –

+0

它仍然没有打印!我弄不明白。 – passion