无法定义回调时使用 angularjs JSONP [英] Using angularjs JSONP when callback cant be defined

查看:26
本文介绍了无法定义回调时使用 angularjs JSONP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm attempting to use Angularjs to gather data from the USGS Earthquake feed. Typically you would need to tack ?callback=JSON_CALLBACK on to the end of the URL for Angular to use it, however the USGS feed does not recognize this option.

我使用的 URL 是 http://earthquake.usgs.gov/地震/饲料/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.

The URL I'm using is http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojsonp and adding ?callback=JSON_CALLBACK (eg. http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojsonp?callback=JSON_CALLBACK) returns a dataset wrapped in a function called eqfeed_callback.

有没有办法使用这些数据?我有一个 eqfeed_callback 函数,但它不在范围内,这使得使用 Angular 毫无意义.

Is there any way to use this data? I've got an eqfeed_callback function but it's not in scope which makes using Angular pointless.

这是我现在得到的代码:

Here's the code that I've got as it stands:

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 函数获得 angular?

Is there any way to either get the data back into the scope, or get angular to use the eqfeed_callback function internally?

推荐答案

另一种选择是在如下范围内定义 eqfeed_callback:

Another option would be defining the eqfeed_callback within the scope like this:

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
    }
}

这篇关于无法定义回调时使用 angularjs JSONP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆