これを検索したところ、うまく答えが見つからないようです。私はjQuery ajaxコールを使用していて、コールバックに応答できません。ここでコールバックメソッドから適切なスコープを取得している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 **メソッドは** handleData ** – pandabrand
の返り値ではなくメソッドを返すことはありません。初期化しますか?明確にするために、initializeはjQuery jqXHRオブジェクトを返します。 http://api.jquery.com/Types/#jqXHR。データが返されません。 – loganfsmyth
申し訳ありませんが、あなたは正しいです、私はちょうどもう1杯のコーヒーが必要でした。 ;-) – pandabrand