Javascript Backbone.js“error”事件:我如何知道哪个方法(获取、保存、删除)触发了它?
只要响应不是200状态代码,主干同步就会触发模型/集合上的错误事件。为了实现默认的错误处理机制,我正在侦听视图中的错误事件。这是可行的,但我希望能够区分保存、删除和检索获取的错误 简而言之,这就是我想要的:Javascript Backbone.js“error”事件:我如何知道哪个方法(获取、保存、删除)触发了它?,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,只要响应不是200状态代码,主干同步就会触发模型/集合上的错误事件。为了实现默认的错误处理机制,我正在侦听视图中的错误事件。这是可行的,但我希望能够区分保存、删除和检索获取的错误 简而言之,这就是我想要的: var MyView = Backbone.View.extend({ initialize: function(options){ this.listenTo(this.model, 'error', this.errorHandler); }, errorHandle
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?
}
});
主干是否为我提供了这样做的方法?jqXHR对象是否存在?在这里寻找选择
我知道我可以,也有人会说,应该在选项中使用错误回调来获取等,但我不想修改大量现有代码来创建默认行为
我是否需要覆盖基本模型中的获取、保存和删除来命名事件的名称空间,或者是否已经内置了某些内容
感谢主干网错误事件的回调有3个参数:model、xhr和按此顺序排列的选项 options对象引用用于触发失败请求的选项。因此,在它里面,您应该能够看到使用了什么HTTP方法,我认为ti称之为type?,状态码,甚至是它试图将请求发送到的URL。至少在1.0.0中,选项是从调用传递到(例如)获取的。我只有success、error回调以及EmulateHTTP和EmulateJSON。它也有附加到选项的xhr对象,但这是回调的第二个参数。除非它隐藏在XHR的某个地方,否则我没有它