我正在尝试在我的角度代码中使用{$ 3}跟随Yahoo Finance API调用。 Angular this要求回调参数为JSON_CALLBACK
。
角度回调格式
var url = 'http://autoc.finance.yahoo.com/autoc?query=Google&callback=JSON_CALLBACK';
var dfd = $q.defer();
$http.jsonp(url).success(function (data, status, headers, config) {
console.log(data);
dfd.resolve(data);
}).error(function (data, status, headers, config) {
dfd.reject(status);
});
但是,除非将回调专门设置为YAHOO.Finance.SymbolSuggest.ssCallback
,否则此API调用似乎会返回404。
我可以通过使用该回调使http请求像下面那样工作但是它在angular的范围之外。有没有办法以角度提出这个请求而不污染全局范围?
Yahoo回调格式
var url = 'http://autoc.finance.yahoo.com/autoc?query=Google&callback=YAHOO.Finance.SymbolSuggest.ssCallback';
var dfd = $q.defer();
$http.jsonp(url).success(function (data, status, headers, config) {
console.log(data);
dfd.resolve(data);
}).error(function (data, status, headers, config) {
dfd.reject(status);
});
return dfd.promise;
};
// this has to be global for this to work! eww...
var YAHOO = {
Finance: {
SymbolSuggest: {
ssCallback: function(r) {
console.log(r);
}
}
}
}