angularjs $ http.jsonp成功数据访问别处

时间:2017-01-29 18:32:29

标签: javascript angularjs angularjs-http

如何在$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);

目前控制台打印未定义。

感谢您的帮助。

1 个答案:

答案 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);
});