2012-05-30 29 views
0

我有一个集合:conditions。在视图中,返回一个错误​​响应后,我想显然不是创建模型:Backbone.js在错误回调传递时试图保存?

var attributes = ...; 
conditions.create(attributes, { 
    error: function (model, response) { 
    conditions.trigger('error'); 
    var response = JSON.parse(response.responseText); 
    console.log(response); 
    } 
}); 

error回调被正确调用。响应被正确记录。但骨干仍然将(破损)模型添加到集合中!当我看到conditions.toJSON()时,有一个新的模型具有一些中断属性。

我从服务器返回了一个错误,我如何坚持Backbone不会将新模型添加到集合中?

我可以在回调中做conditions.remove(model),但是我应该吗?

回答

6

您可以将{wait: true}传递给create方法。

创建一个模型将导致的收集,以及一个"sync"事件触发的即时"add"事件,一旦该模型已经在服务器上创建成功。如果您想在将新模型添加到集合之前等待服务器,请通过{wait: true}

http://documentcloud.github.com/backbone/#Collection-create

+0

是。我认为最好的术语(如文档中所述)是Backbone对模型创建和同步“乐观”。 – jmk2142

相关问题