一尘不染

无法定义回调时使用angularjs JSONP

angularjs

我正在尝试使用Angularjs从USGS地震供稿中收集数据。通常,您需要在URL末尾添加?callback =
JSON_CALLBACK以便Angular使用它,但是USGS提要无法识别此选项。

我使用的URL是http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojsonp并添加?callback

JSON_CALLBACK(例如,http
://earthquake.usgs.gov/earthquakes
/feed/v1.0/summary/all_day.geojsonp?callback=JSON_CALLBACK)返回包装在名为eqfeed_callback的函数中的数据集。

有什么办法可以使用这些数据?我有一个eqfeed_callback函数,但它不在范围内,因此无法使用Angular。

这是我现有的代码:

function QuakeCtrl($scope, $http) {

    $scope.get_quakes = function() {
        var url = 'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojsonp';
        $http.jsonp(url)
    }

}

function eqfeed_callback(data) {
    return data;
}

有什么方法可以使数据返回范围,还是可以在内部使用eqfeed_callback函数获取角度?


阅读 219

收藏
2020-07-04

共1个答案

一尘不染

另一个选择是在这样的范围内定义eqfeed_callback:

function QuakeCtrl($scope, $http) {
    $scope.data = null;
    $scope.get_quakes = function() {
      var url = 'http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojsonp';
      $http.jsonp(url)
    }

    window.eqfeed_callback = function(data) {
      $scope.data = data
    }
}
2020-07-04