2

我有一个 RESTful 服务,当我尝试保存新记录时,它会执行唯一的电子邮件检查。当它失败时,我会返回一个 400 错误代码以及一条带有“错误”值的 JSON 消息。

不幸的是,我保存的错误回调似乎没有触发。有什么建议么?

var nRecord = new RecordModel(values);
nRecord.save({
    wait: true,
    error: function(model,response){
        console.log('error2');
        obj.errorHandler(model,response);
    },
    success: function() {
        console.log('success2');
        obj.alert('Information saved!','Record Created!','success');

        // if there were no errors, clear the list
        $('#record-form :input').val('');
    }
});

“Error2”永远不会显示在控制台中。想法?

4

2 回答 2

8

您似乎将错误处理程序和其他选项作为模型属性传递并保存到模型中。尝试将 null 作为第一个参数传递给 save 函数。希望这会让它工作:)

nRecord.save(null,{
    wait: true,
    error: function(model,response){
        console.log('error2');
        obj.errorHandler(model,response);
    },
    success: function() {
        console.log('success2');
        obj.alert('Information saved!','Record Created!','success');

        // if there were no errors, clear the list
        $('#record-form :input').val('');
    }
});
于 2012-06-18T02:21:33.120 回答
1

我遇到了这个问题,问题是我覆盖了模型中的同步。这意味着选项没有被传递。

completeCustomer.save(null, {
                wait: true,
                error: function(model,response){
                    console.log('error2');
                    //obj.errorHandler(model,response);
                    _.bind(this.handleError, this);
                },
                success: function() {
                    console.log('success2');
                    //_.bind(this.handleSuccess, this);
                }
            });
于 2013-02-26T12:17:37.173 回答