1

我正在向我的骨干集合中添加一个项目,如下所示:

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

我已经像这样覆盖了 MyCollection 中的同步:

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

但是似乎在添加之后没有调用同步-它成功执行并触发“添加”事件。我错过了什么吗?还是这是正确的行为?

4

2 回答 2

4

你想要的是myCollection.create(item).

检查Backbone Collection.create() 文档

于 2012-08-12T20:05:22.630 回答
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)
})

于 2016-10-01T05:28:36.603 回答