Backbone.js'error'事件:我如何知道触发它的方法(获取,保存,删除)?

时间:2014-01-28 18:47:52

标签: javascript jquery backbone.js

只要响应不是200状态代码,

Backbone sync就会在模型/集合上触发error事件。为了实现默认的错误处理机制,我正在我的视图中监听error事件。这有效,但我希望能够区分错误保存(save),删除(delete)和检索(fetch)。

因此,简而言之,这就是我想要的东西:

var MyView = Backbone.View.extend({
  initialize: function(options){
    this.listenTo(this.model, 'error', this.errorHandler);
  },
  errorHandler: function(model, xhr, options){
    // logic would depend on whether the event was triggered by fetch, 
    // save, or delete
    // How can I tell how the event was triggered? 
  }  
});

Backbone是否为我提供了一种方法?是jqXHR对象吗?在这里寻找选择。

我知道我可以(有些人会说,应该)使用选项中的错误回调来获取等等,但我不想修改很多现有代码来创建默认行为。

我是否需要在基本模型中覆盖获取,保存和删除以命名事件,或者是否已经内置了某些内容?

由于

1 个答案:

答案 0 :(得分:0)

Backbones错误事件的回调有3个参数:model,xhr和options(按此顺序)。

options对象引用用于触发(失败请求的选项。因此,在其中,您应该能够看到使用了什么HTTP方法(我认为ti称为“类型”?) ,statusCode甚至是它试图发送请求的URL。