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

时间:2013-07-29 18:17:32

标签: 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 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');
    }
});

出于某种原因,我正在获取我的错误参数的Backbone模型。我已经逐步完成了代码,看起来Backbone有一些自定义的错误方法可以解决所有问题。谁能告诉我这里发生了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

想出来。问题出在我的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);
}

猜猜我读错了文档。 :/