He buscado esto y no puedo encontrar una respuesta exitosa, estoy usando una llamada jQuery ajax y no puedo obtener la respuesta a la devolución de llamada.Coffeescript obteniendo el alcance correcto del método de devolución de llamada
Aquí está mi código CoffeeScript:
initialize: (@blog, @posts) ->
_url = @blog.url
_simpleName = _url.substr 7, _url.length
_avatarURL = exports.tumblrURL + _simpleName + 'avatar/128'
$.ajax
url: _avatarURL
dataType: "jsonp"
jsonp: "jsonp"
(data, status) => handleData(data)
handleData: (data) =>
console.log data
@avatar = data
Aquí está la JS compilado:
Blog.prototype.initialize = function(blog, posts) {
var _avatarURL, _simpleName, _url,
_this = this;
this.blog = blog;
this.posts = posts;
_url = this.blog.url;
_simpleName = _url.substr(7, _url.length);
_avatarURL = exports.tumblrURL + _simpleName + 'avatar/128';
return $.ajax({
url: _avatarURL,
dataType: "jsonp",
jsonp: "jsonp"
}, function(data, status) {
return handleData(data);
});
};
Blog.prototype.handleData = function(data) {
console.log(data);
return this.avatar = data;
};
He intentado una docena de variaciones y no puedo encontrar la manera de escribir esto?
Gracias.
mismo aquí ** handleData ** nunca se llama simplemente devuelve un método, no el retorno de ** handleData ** – pandabrand
Lo sentimos, ¿qué devuelve un método? ¿inicializar? Para que quede claro, en este momento initialize devolverá un objeto jQuery jqXHR. http://api.jquery.com/Types/#jqXHR. No hay datos devueltos. – loganfsmyth
Lo siento, tenías razón, solo necesitaba otra taza de café. ;-) – pandabrand