Ich versuche, ein Aktienkurs von Yahoo Api zu bekommen, und ich benutze die $ http.jsonp Methode von angular. Das Ziel ist, wenn das Ergebnis zurückkommt, damit die App auf diese Route geht: '/ stocks/show_stock'. Ich versuche, es auf zwei Arten zu tun und nicht funktioniert 1) Ich habe die Anweisung setzen:angularjs - HTTPpromise wird nicht ausgeführt, wenn JSONP zurückgegeben wird
window.location = '/stocks/show_stock'
in der Callback-Funktion, die die JSONP Antwort 2) hüllt ich die Aussage setzen:
$location.path '/stocks/show_stock'
im HTTP-Promise-Callback. (Siehe die Kommentare im Code)
Hier ist mein Code (in Coffeescript):
#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)
}
Vielen Dank im Voraus.
Sie Rückruf nicht hinzugefügt haben = JSON_CALLBACK auf die URL, sollte die URL http://query.yahooapis.com/v1/public/yql?callback=JSON_CALLBACK&q='+q sein –
es da ist. die 6. Zeile der 'q'-Saite. Wie ich bereits erwähnt habe, ist das nicht das Problem, ich bekomme den Rückruf zu feuern, aber window.location = '/ stocks/show_stock' innerhalb dieser Callback funktioniert nicht. Deshalb habe ich versucht, die "then" -Funktion von httpPromise zu verwenden, aber das hat auch nicht funktioniert – dimitar
Danke Ajay jetzt weiß ich, was du meinst. – dimitar