Sto cercando di ottenere una quotazione azionaria dall'api di yahoo e sto utilizzando il metodo $ http.jsonp di angular. L'obiettivo è quando il risultato ritorna, per fare in modo che l'app passi a questa rotta: "/ stocks/show_stock". Sto cercando di farlo in due modi e nessuno dei due funziona 1) Ho messo la dichiarazione:angularjs - HTTPpromise non viene eseguito quando viene restituito JSONP
window.location = '/stocks/show_stock'
nella funzione di callback che avvolge la risposta JSONP 2) Ho messo la dichiarazione:
$location.path '/stocks/show_stock'
nel callback di HTTPpromise. (Vedere i commenti nel codice)
Ecco il mio codice (in coffescript):
#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)
}
Grazie in anticipo.
non si è aggiunto = JSON_CALLBACK all'URL, l'URL deve essere http://query.yahooapis.com/v1/public/yql?callback=JSON_CALLBACK&q='+q –
è lì. la sesta riga della stringa 'q'. Come ho già detto, non è il problema a far funzionare il callback, ma window.location = '/ stocks/show_stock' all'interno di quella callback non funziona. Ecco perché ho provato a utilizzare la funzione "then" di httpPromise ma non ha funzionato né – dimitar
Grazie Ajay ora so cosa intendi. – dimitar