繁体   English   中英

提取失败时,让我所有的Backbone模型做出相同的反应

[英]Let all my Backbone models react the same when fetch fails

我正在锁定一种方式,当获取或保存失败时,我的所有集合和模型都使用相同的逻辑来显示错误。 但是我不想再次写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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM