【发布时间】:2011-10-25 22:36:46
【问题描述】:
我正在尝试覆盖 Backbone.sync,以便在每次获取模型时设置“id”属性。这样,我确信下一个 model.save() 将触发 update 而不是 create,即使 fetch() 没有响应 id。
Backbone._sync = Backbone.sync;
Backbone.sync = function(method, model, options) {
var params = _.clone(options);
params.success = function(model) {
if(method == 'read' && model.isNew()) {
var id = Math.floor(Math.random()*1000);
model.set({ "id": id });
}
if(options.success) options.success(model);
};
Backbone._sync(method, model, params);
}
但是传递给成功函数的模型似乎不是Backbone模型,而只是一个对象。所以我不能在上面使用任何方法(比如model.isNew())。知道我做错了什么吗?
【问题讨论】: