Backbone.js错误回调参数被模型替换
我有一个RESTful JSON api,用于执行如下服务器端调用:Backbone.js错误回调参数被模型替换,backbone.js,error-handling,backbone-model,Backbone.js,Error Handling,Backbone Model,我有一个RESTful JSON api,用于执行如下服务器端调用: Servlet.prototype.ajaxJSON = function (jobject, func, context) { var self = this; $.getJSON(this.name, jobject, function (json) { ... }).fail(function(jqXHR, status, errorThrown) { var
Servlet.prototype.ajaxJSON = function (jobject, func, context) {
var self = this;
$.getJSON(this.name, jobject, function (json) {
...
}).fail(function(jqXHR, status, errorThrown) {
var callname = JSON.stringify(jobject).slice(1,JSON.stringify(jobject).indexOf(':'));
if(func !== null) {
func(JSON.parse('{' + callname+': {"error": "Server Error:' + errorThrown + '"}}'));
}
});
};
但是,当我尝试在模型中使用错误回调时:
newComment.save(null, {
'success': _.bind(function(model, response) {
...
}, this),
'error': function(model, error) {
errorAlert(error, 'Could not post comment');
}
});
出于某种原因,我得到了一个主干模型作为我的错误参数。我已经仔细阅读了代码,看起来主干网有一些定制的Wraperor方法,把一切都搞糟了。有人能告诉我这里发生了什么事吗?谢谢 找到了答案。问题在于我的
model.sync
方法。我有一个检查错误的条件,它看起来像:
if(_.isObject(json.post_comment) && json.post_comment.error) {
options.error(model, json.post_comment.error, options);
}
这需要:
if(_.isObject(json.post_comment) && json.post_comment.error) {
options.error(json.post_comment.error);
}
我想我看错了文件/ 第二个参数不是错误,而是
xhr
对象。。尝试error.responseText
如果出现主干模型验证错误,该怎么办?它仍然是XHR吗?此外,error.responseText似乎为null或未定义。正如我所说,出于某种原因,错误是一种模式。