在无法定义回调时使用angularjs JSONP

jac*_*ker 8 javascript jsonp angularjs

我正在尝试使用Angularjs从USGS Earthquake饲料中收集数据.通常,您需要将?callback = JSON_CALLBACK添加到Angular的URL末尾以使用它,但是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;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让数据重新进入范围,或者获取角度以在内部使用eqfeed_callback函数?

Man*_*ijn 18

另一种选择是在范围内定义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
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 甚至:`$ window.eqfeed_callback ...` (2认同)