无法定义回调时使用 angularjs JSONP [英] Using angularjs JSONP when callback cant be defined
问题描述
我正在尝试使用 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屋!