【发布时间】:2015-04-29 14:21:40
【问题描述】:
我正在从具有自定义回调函数 for example 的 JSONP 提要中提取:
jsonpCallbackAllStar2015({
"events": [
{
"title": "XYZ"
}
...
]
})
我可以这样做,像这样使用solution posted here:
var jsonUrl = 'http://i.cdn.turner.com/nba/nba/.element/media/2.0/teamsites/warriors/json/json-as2015.js?callback=JSON_CALLBACK' + (new Date().getTime());
$http.jsonp(jsonUrl);
window.jsonpCallbackAllStar2015 = function(data) {
$scope.events = data.events;
}
但是我现在想在服务中执行此操作,以便我可以一次性加载数据并将其注入我的所有控制器。然而,当我尝试这个时,我得到一个$injector undefined 错误,我猜这是因为服务返回的速度不够快:
eventsFactory.$inject = ['$http'];
function eventsFactory($http) {
var jsonUrl = 'http://i.cdn.turner.com/nba/nba/.element/media/2.0/teamsites/warriors/json/json-as2015.js?callback=JSON_CALLBACK' + (new Date().getTime());
$http.jsonp(jsonUrl);
window.jsonpCallbackAllStar2015 = function(data) {
return data.events;
}
}
有没有办法解决这个问题,还是我必须在每个控制器中重复 jsonp 请求? Here is a fiddle.
【问题讨论】:
标签: angularjs jsonp angular-services