1

データベースにコレクション (オブジェクト リスト) があります。私はそれを次のように取得できます:collectionModel.fetch() しかし、ユーザーはそのコレクションで何かを変更します。ユーザーが保存ボタンをクリックすると、コレクション リスト全体がデータベースで更新される必要があります。delete()最初に古いものを使用してから新しいものを使用できるのではないかと思いましたが、達成できませんcreate()でした。update()この場合、変更されたコレクション要素を見つける必要がありますが、リスト全体を更新したいため、このメソッドを使用できません。どうやってやるの?手伝ってくれてありがとう。

4

3 に答える 3

0

これは非常に古い質問ですが、別のアプローチがあったので、投稿したいと思いました。

コレクションに大量のデータがあり、サーバーがすべてを取得できないことがあります。バックボーンコレクションにあるアンダースコアメソッドの1つを使用してこれを解決しましたinvoke(これもjqueryに依存しています):

MyCollection = Backbone.Collection.extend({
  update: function(callback) {
    // Invoke the update method on all models
    $.when.apply($, this.invoke('update')).then(() => {
      // After complete call the callback method (if passsed)
      if(callback) {
        callback();
      }
    });
  }
});

collection.update()コレクションにモデルが含まれているときに呼び出すことで使用できます。コレクションの作成または削除にも同様の方法を使用できます。これはエラーをキャッチするために変更できるはずですが、私はそれを説明しませんでした。

于 2019-03-11T19:02:44.460 に答える
0

コレクションをリセットしたい場合は、「reset」属性を指定する必要があります。

collectionList.fetch({
    reset: true,

   ...
});

しかし、それを更新する方が良いと思います:

collectionList.fetch({
    remove: false,
    update: true,
    merge: true,

   ...
});
于 2013-08-16T08:48:16.803 に答える