- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 yahoo 的 api 获取股票报价,并且正在使用 angular 的 $http.jsonp 方法。目标是当结果返回时,让应用程序转到这条路线:'/stocks/show_stock'。我试图以两种方式做到这一点,但都不起作用
1)我把声明:
window.location = '/stocks/show_stock'
$location.path '/stocks/show_stock'
#THIS IS THE CALLBACK FUNCTION THAT I SEND WITH THE JSONP REQUEST
window.stock_quote_callback = (data)->
console.log data #THIS WORKS AND I CAN SEE THE DATA RETURNED FROM YAHOO
window.stock_quote_result = data.results
alert 'I am in the callback'
#THE STATEMENT BELOW DOES NOT WORK EVEN THOUGH I CAN SEE THE ALERT ABOVE
window.location = '/stocks/show_stock'
angular.module('Services').service 'StockSupplier', ($http)->
get_stock = (symbol)->
q = 'select * from yahoo.finance.quotes
where symbol in ("'+symbol+'")
&format=json&
diagnostics=true&
env=http://datatables.org/alltables.env&
callback=stock_quote_callback'
url = 'http://query.yahooapis.com/v1/public/yql?q='+q
$http.jsonp(url).then (data)->
#THE CODE BELOW NEVER EXECUTES EVEN THOUGH RESULT IS RETURNED
alert 'This should pop up when result returns'
$location.path'/stocks/show_stock'
{
get_stock: (symbol)-> get_stock(symbol)
}
最佳答案
我不写coffeescript,所以我把它翻译成javascript。你忘了注入(inject) $location
服务,除了我刚刚更换了callback=stock_quote_callback
至callback=JSON_CALLBACK
并创建了一个运行良好的 plunker:http://run.plnkr.co/hCAdohIJIr9Odn3m/ (来源:http://plnkr.co/edit/a7C6k0QVoXnaTyImSUkb?p=preview)。
angular.module('Services').service('StockSupplier', function($http,$location) {
var get_stock;
get_stock = function(symbol) {
var q, url;
q = 'select * from yahoo.finance.quotes where symbol in ("' + symbol + '")&'+
'format=json&'+
'diagnostics=true&'+
'env=http://datatables.org/alltables.env&'+
'callback=JSON_CALLBACK ';
url = 'http://query.yahooapis.com/v1/public/yql?q=' + q;
return $http.jsonp(url).then(function(data) {
alert('This should pop up when result returns');
$location.path( '/stocks/show_stock' );
});
};
return {
get_stock: function(symbol) {
return get_stock(symbol);
}
};
});
关于angularjs - 返回 JSONP 时不执行 HTTPpromise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16751491/
我有一个请求函数: function search(request) { return $http.post('/path/to/resource', request); } 我可以这样调用它
我正在尝试从 yahoo 的 api 获取股票报价,并且正在使用 angular 的 $http.jsonp 方法。目标是当结果返回时,让应用程序转到这条路线:'/stocks/show_stock'
根据AngularJS doc ,调用 $http 返回以下内容: Returns a promise object with the standard then method and two htt
我是一名优秀的程序员,十分优秀!