集合上的骨干同步添加

时间:2012-08-12 17:00:46

标签: backbone.js backbone-views

我正在向我的骨干系列添加一个项目,如下所示:

item = existingItem.clone()
myCollection.add(item)

我在MyCollection中覆盖了这样的同步:

sync: function() {
  console.log('sync is called')
}

然而,似乎在添加后不会调用同步 - 这会成功执行并触发'添加'事件。我错过了什么吗?或者这是正确的行为吗?

2 个答案:

答案 0 :(得分:4)

你想要的是myCollection.create(item)

检查Backbone Collection.create() doc

答案 1 :(得分:0)

Collection.create返回模型,但在某些情况下,您可能需要访问xhr对象。在这种情况下,你可以这样做:



// add the model to the collection first
// so that model.url() will reference the collection's URL
myCollection.add(myModel)

// now save. this will trigger a POST to the collection URL
// save() returns the xhr so we can attach .done/.fail handlers
myModel.save()
.done(function(res) {
    console.log('it worked')
})
.fail(function(err) {
    console.log('it failed')
    // might be a good idea to remove the model from the collection
    // since it's not on the server
    myCollection.remove(myModel)
})