Backbone model.create不调用任何回调

时间:2012-11-28 06:57:06

标签: javascript backbone.js backbone-model

我有以下代码为集合创建新模型。基础数据存储区是一个远程API:

        var postCreationStatus = this.model.create(newPostModel, {
            wait : true     // waits for server to respond with 200 before adding newly created model to collection
        }, {
            success : function(resp){
                console.log('success callback');
                console.log(resp);
            },
            error : function(err) {
                console.log('error callback');
                console.log(err);
            }
        });

新模型已创建,我可以从数据库中确认,但是不会调用成功和错误回调。

创建完成后,我想重定向用户。过早地重定向会导致AJAX请求失败,这就是我使用成功回调的重要原因。

服务器响应JSON响应{ id : 11 },HTTP状态为200 OK

1 个答案:

答案 0 :(得分:6)

查看骨干代码,我意识到我对create()函数的调用是不正确的。成功和错误回调需要在作为第二个参数传入的对象内,而不是作为第三个参数。改变后的工作片段是这样的:

var postCreationStatus = this.model.create(newPostModel, {
    wait : true,    // waits for server to respond with 200 before adding newly created model to collection

    success : function(resp){
        console.log('success callback');
        console.log(resp);
        that.redirectHomePage();
    },
    error : function(err) {
        console.log('error callback');
        // this error message for dev only
        alert('There was an error. See console for details');
        console.log(err);
    }
});