Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js错误回调参数被模型替换_Backbone.js_Error Handling_Backbone Model - Fatal编程技术网

Backbone.js错误回调参数被模型替换

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

我有一个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 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或未定义。正如我所说,出于某种原因,错误是一种模式。