Javascript - 如何在对对象文字的ajax调用中绑定(bind) 'this'

标签 javascript jquery ajax this object-literal

我有一个对象文字 router,包含一个 ajax 调用。我想在 ajax 调用中调用其他函数 this.printMovies()this 引用 ajax 对象。

我如何转义它并使 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(){

    },  
}

最佳答案

context 选项传递给 ajax:

$.ajax({
  context: this,
  /* other options */
}

现在在 ajax 回调中,this 将引用 router 对象。

关于Javascript - 如何在对对象文字的ajax调用中绑定(bind) 'this',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37521320/

相关文章:

asp.net - 模态窗口中的弹出窗口替换 JS 确认和警报 - ASP.NET

jquery - 第一次使用这个 "sliding animation on menu hover with jQuery"Fiddle 悬停时如何关闭动画?

c# - 如何将文件上传到 Web API 服务器并将参数发送到操作?

jquery - externalHeight(true) 给出了错误的值

jquery - 如何使用多个 (50+) 字段进行 POST API 调用

c# - 嵌套更新面板问题

Javascript xmlHttpRequest 对象检测与 try..catch

javascript - 运行 yarn dev 后出现 Fusion.js 错误

javascript - Jsmin 位于带有子文件夹的文件夹上

javascript - 我可以使用 jQuery 和外部 JSON 数据以编程方式绘制 HTML5 Canvas x/y 点吗?