Я искал это и не могу найти успешный ответ, я использую jQuery ajax call, и я не могу получить ответ на обратный вызов.Coffeescript получает правильную область от метода обратного вызова
Вот мой 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
Вот скомпилированный JS:
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;
};
Я попробовал десяток вариантов, и я не могу понять, как написать это?
Спасибо.
такой же здесь ** handleData ** никогда не называется, он просто возвращает метод, а не возврат ** handleData ** – pandabrand
Извините, что возвращает метод? инициализировать? Чтобы быть ясным, в данный момент инициализация вернет объект jQXHR jQuery. http://api.jquery.com/Types/#jqXHR. Там данные не возвращаются. – loganfsmyth
Извините, вы были правы, мне просто нужна еще одна чашка кофе. ;-) – pandabrand