我试图在回调中设置主干模型的参数,但我仍然收到错误"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});
});
}
});
this
不会在.getJSON
回调的上下文中引用您的模型。你可以保存对你的模型的引用,这样它就可以在回调中访问,如下所示:
getStatus : function() {
var model = this;
$.getJSON(this.url(), function(data) {
model.set({status : data.status});
});
}