当我在parse()
方法中收到的服务器响应无效时,我试图抛出错误。
我尝试将options参数中的error
键设置为false
,或者在我的模型的重叠options.xhr.error(this, resp, options);
方法中调用parse()
方法,但没有一个导致要触发error
方法的fetch()
回调。
有任何线索吗?
这里是实际的例子:
Backbone.Model.extend({
parse: function parse(resp, options){
if(resp && resp.meta.success){
return resp.response;
}else{
//Throw an error which cause the "error" callback of the fetch method to get triggered
}
}
an});
答案 0 :(得分:0)
如果响应有错误,您应该能够覆盖同步函数以触发错误回调,或者使用主响应调用默认成功处理程序:
var MyModel = Backbone.Model.extend({
sync: function(method, model, options){
var error = options.error;
var success = options.success;
options.success = function(resp){
if (resp && resp.meta.success){
success(resp.response);
} else{
error(resp.response);
}
};
return MyModel.__super__.sync.call(this, method, model, options);
}
});