pan*_*and 5 javascript jquery scope coffeescript
我搜索过这个并且似乎无法找到成功的答案,我正在使用jQuery ajax调用,我无法得到回调的响应.
这是我的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
Run Code Online (Sandbox Code Playgroud)
这是编译好的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;
};
Run Code Online (Sandbox Code Playgroud)
我已经尝试了十几个变种,我无法弄清楚如何写这个?
谢谢.
您的参数不正确,您将回调作为第二个参数传递给$.ajax. 您应该将其作为success:选项传递,或者将其添加到 Ajax 延迟对象中。
由于handleData看起来像是附加到一个对象上的,这很可能是this,所以您需要在它前面加上前缀@。
虽然您传递 URL 的方式有效,但 API 现在建议将 URL 作为第一个参数传递,将选项作为第二个参数传递。
$.ajax _avatarURL,
dataType: "jsonp"
jsonp: "jsonp"
success: (data, status) => @handleData(data)
Run Code Online (Sandbox Code Playgroud)
或者
$.ajax _avatarURL,
dataType: "jsonp"
jsonp: "jsonp"
.done (data) => @handleData(data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2192 次 |
| 最近记录: |