2011-11-03 24 views
3

モデルのコレクションを保存していますが、バックボーンはこれらを順番に実行したいと思われます。これは高価で完了までに時間がかかります。ユーザーがページの途中から更新またはナビゲートすると、データが保存されない可能性があります。バックボーンjsバッチ処理保存

バックボーンにアレイとして送信する方法はありますか?

どうすればよいですか?貯蓄をし

コード:

_(this.models).each(

      function(guest) { 

       if (tid == guest.get('tableId') || guest.get('tableId') == null) { 
        guest.set({ tableId: tid }); 
        guest.save(); 
       } 
      } 
); 
+1

このアクションを実行するために現在使用しているコードの例を挙げることはできますか? – tgriesser

答えて

2

私はしばらくの間、これについて考えてきた... RESTは、複数の項目のプッシュを定義していない(私が知っていること)が必要になりますそれを実現させるためにカスタムのものを書く必要があります。

私は行くための最善の方法は非常に実際には「インデックス」である既存のGETのように、あなたの/entitiesパスにPUTされているバックエンドのカスタムルートを作成することだと思います。 GETが今すぐJSONコレクションを返すように、JSONコレクションを取得します。

Backbone.Collectionを無効にして、save機能を含める必要があります。 Backbone.syncには4つの動詞(作成、更新、削除、読み込み)しかないので、 "更新"をしたいと思うでしょうが、あなたのコレクションをJSONコレクションにシリアル化して体。 Backbone.syncに少しオーバーライドするか、新しいBackbone.Collection.save機能で$.ajaxにカスタムコールするだけです。

少なくとも、どのように私はそれを攻撃するだろう。 :)

+1

私は同意する、それはそれを行う方法です。 Backbone.syncを使用することもできます。このコードは次のコードを参照してください:http://stackoverflow.com/questions/7975316/how-to-save-a-collection-with-backbone-js/7986982#7986982 – dira

+0

サポートリンクありがとう@dira :) –

+0

ダイアラは正しくなっていますが、それ以外の方法はありません。 – iwayneo