私はオブジェクトリテラルrouter
を持っており、ajax呼び出しを含んでいます。私は他の関数this.printMovies()
をajax呼び出しの中で呼び出したいが、this
はajaxオブジェクトを参照する。Javascript - オブジェクトリテラルへのajax呼び出しの中で 'this'をバインドする方法
this
はどのようにしてエスケープしてrouter
オブジェクトを参照していますか?全体の成功コールバックのバインドとそれが動作します
var router = {
//...
init : function() {
this.getData("api/movies", "movies", callback);
},
getData : function (url, htmlType, callback) {
$.ajax({
url: url,
dataType: 'json',
success: function (response) {
if (response && response.length > 0) {
this.printMovies(response, callback); //'this' refers to ajax
this.printMovies(response, callback).bind(this) //still doesn't work
}
},
error: function (response) { console.log("Error:" + response); }
});
},
printMovies : function(){
},
}
これは '$ .ajax' AJAXコールDEFN前this'を=' $で変数を初期化してみます。成功したルータのobjを '$ this'と呼んでください –
これは機能します!これが答えです! –
@ViolaTこれはオプションとしてAJAXメソッドを使用できます。コンテキストを使用してください。 –