1

我正在尝试从回调中设置我的主干模型的参数,但我继续收到错误“this.set 不是函数”。我以为 _.bindAll 旨在解决这些情况……我用错了吗?是否有其他方法可以用来确保在回调触发后才设置模型的状态参数?

var Service = Backbone.Model.extend({
    defaults : {
        status : "off"
    },
    url : "/status",
    initialize : function {
        _.bindAll(this, "getStatus");
        this.getStatus();
    },
    getStatus : function() {
        $.getJSON(this.url(), function(data) {
            this.set({status : data.status});
        }); 
    }
});
4

1 回答 1

1

this不会在.getJSON回调的上下文中引用您的模型。您可以保存对模型的引用,以便在回调中访问它,如下所示:

getStatus : function() {
    var model = this;
    $.getJSON(this.url(), function(data) {
        model.set({status : data.status});
    }); 
}
于 2012-07-23T17:11:55.953 回答