gpt4 book ai didi

jquery - Coffeescript 从回调方法中获取适当的范围

转载 作者:搜寻专家 更新时间:2023-11-01 04:19:33 26 4
gpt4 key购买 nike

我已经搜索过了,但似乎找不到成功的答案,我正在使用 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

这是编译后的 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;
};

我已经尝试了十几种变体,但我不知道如何写这个?

谢谢。

最佳答案

您的参数不正确,您将回调作为第二个参数传递给 $.ajax。您应该在选项中将其作为 success: 传递,或者将其添加到 Ajax 延迟对象。

由于 handleData 看起来像是附加到一个对象,很可能是 this,您需要在它前面加上 @ 前缀。

虽然您传递 URL 的方式有效,但 API 现在建议将 URL 作为第一个参数传递,将选项作为第二个参数传递。

$.ajax _avatarURL,
dataType: "jsonp"
jsonp: "jsonp"
success: (data, status) => @handleData(data)

$.ajax _avatarURL,
dataType: "jsonp"
jsonp: "jsonp"
.done (data) => @handleData(data)

关于jquery - Coffeescript 从回调方法中获取适当的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9962104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com