Tôi đã tìm kiếm điều này và dường như không tìm thấy câu trả lời thành công, tôi đang sử dụng cuộc gọi jQuery ajax và tôi không thể nhận phản hồi cho cuộc gọi lại.Coffeescript nhận phạm vi thích hợp từ phương thức gọi lại
Đây là mã coffeescript tôi:
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
Đây là JS biên soạn:
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;
};
Tôi đã thử một chục biến thể và tôi không thể tìm ra cách để viết những dòng này?
Cảm ơn.
cùng ở đây ** handleData ** không bao giờ được gọi là nó chỉ trả về một phương thức, không phải trả về ** handleData ** – pandabrand
Xin lỗi, cái gì trả về một phương thức? khởi tạo? Để rõ ràng, tại thời điểm khởi tạo sẽ trả về một đối tượng jQuery jqXHR. http://api.jquery.com/Types/#jqXHR. Có dữ liệu không được trả về. – loganfsmyth
Xin lỗi, bạn đã đúng, tôi chỉ cần một tách cà phê khác. ;-) – pandabrand