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 に答える