如何在$http.jsonp()
请求之外的$ http中访问$ scope或从成功获得的数据?
$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);
目前控制台打印未定义。
感谢您的帮助。
答案 0 :(得分: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);
});