0

所以我已经知道解决这个问题的方法,但我很好奇是否有更好的方法来处理这个调用。我应该进一步提到我正在使用 Backbone。这是我要完成的工作:

loadKey: function() {
    $.ajax({
        // some settings
        success: function(data) {
            this.set('key', data.key);
        }
    });
}

现在显然这个例子是行不通的,因为嵌套的成功函数超出了模型 this 的范围。以下是我目前的处理方式:

loadKey: function() {
    self = this;
    $.ajax({
        // some settings
        success: function(data) {
            self.set('key', data.key);
        }
    });
}

所以回到我的问题。这是一种完全可以接受的处理方式吗?还是有另一种被认为更好的方法来做到这一点?

4

1 回答 1

0

在执行 func 时尝试使用下划线绑定来绑定此上下文。

loadKey: function() {
    $.ajax({
        // some settings
        success: _.bind(function(data) {
            this.set('key', data.key);
        }, this)
    });
}

更新 了关于 that=this 或 self=this 主题的更多讨论:

于 2013-07-15T03:18:28.080 回答