angularjs $http.jsonp 成功数据在别处访问
angularjs $http.jsonp success data access it elsewhere
如何在$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);
当前控制台打印未定义。
感谢您的帮助。
您不应将异步 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);
});
如何在$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);
当前控制台打印未定义。
感谢您的帮助。
您不应将异步 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);
});