Function 从范围外函数设置模型值

Function 从范围外函数设置模型值,function,backbone.js,nested,Function,Backbone.js,Nested,所以我已经知道了解决这个问题的方法,但我很好奇是否有更好的方法来处理这个电话。我应该进一步提到,我正在使用主干网。以下是我试图实现的目标: loadKey: function() { $.ajax({ // some settings success: function(data) { this.set('key', data.key); } }); } 显然,这个例子不起作用,因为嵌套的success函数

所以我已经知道了解决这个问题的方法,但我很好奇是否有更好的方法来处理这个电话。我应该进一步提到,我正在使用主干网。以下是我试图实现的目标:

loadKey: function() {
    $.ajax({
        // some settings
        success: function(data) {
            this.set('key', data.key);
        }
    });
}
显然,这个例子不起作用,因为嵌套的success函数超出了这个模型的范围。以下是我目前的处理方式:

loadKey: function() {
    self = this;
    $.ajax({
        // some settings
        success: function(data) {
            self.set('key', data.key);
        }
    });
}
回到我的问题上来。这是一种完全可以接受的处理方式吗?或者还有其他更好的方法吗?

在执行func时,尝试使用bind from绑定此上下文

loadKey: function() {
    $.ajax({
        // some settings
        success: _.bind(function(data) {
            this.set('key', data.key);
        }, this)
    });
}
已更新 关于that=this或self=this主题的更多讨论:


这样做有什么原因吗?这是一种特殊的方法,而不是将变量设置为该值?就像我将其设置为变量self的示例一样。我使用u.bind,但您应该仔细阅读讨论内容并自行调用。谢谢,这是非常有用的信息。我在搜索中没有找到这些讨论。