0
我锁定了一种方式,其中所有集合和模型都使用相同的逻辑在提取或保存失败时显示错误。但我不想一遍又一遍地写onError回调。我们的目标是让方法在失败时根据响应的http错误代码打开错误对话框。让我的所有Backbone模型在提取失败时反应相同
我锁定了一种方式,其中所有集合和模型都使用相同的逻辑在提取或保存失败时显示错误。但我不想一遍又一遍地写onError回调。我们的目标是让方法在失败时根据响应的http错误代码打开错误对话框。让我的所有Backbone模型在提取失败时反应相同
另一种方式来做到这一点是创建一个基础模型和收藏,让你的模型和集合扩展这些替代骨干:
var BaseModel = Backbone.Model.extend({
onSyncError: function(model, response) {
// your error-handling code
},
onSyncSuccess: function(model, response) {
// do stuff if successful
},
// Backbone will call your 'sync' if it exists
sync: function(method, model, options) {
options.error = this.onSyncError;
options.success = this.onSyncSuccess;
Backbone.sync.call(this, method, model, options);
}
});
然后在你的模型:
var MyModel = BaseModel.extend({
// model stuff
});
想着它,我想出了这个解决方案:
function callback(success){
this.success = sucess;
}
callback.prototyp.error = function(model, response){
// central error handling here
}
myModel.save(new callback(myModel.success))
方式比我更好的解决方案 – 2012-01-02 19:45:24