从超出范围的功能设置模型值

时间:2013-07-15 03:11:33

标签: function backbone.js nested

所以我已经知道了解决这个问题的方法,但我很好奇是否有更好的方法来处理这个问题。我还应该提一下,我正在使用Backbone。这是我正在努力实现的目标:

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

现在显然这个例子不起作用,因为嵌套的成功函数超出了模型的范围。以下是我目前正在处理的问题:

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

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

1 个答案:

答案 0 :(得分:0)

在执行func时,尝试使用underscore中的绑定绑定上下文。

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

<强>更新 关于那个主题的更多讨论= this or self = this: