0

一度に 1 つずつモデルを保存することに問題はありません。オブジェクトの配列に対して再帰的な保存を記述しました。保存が成功するたびに、オブジェクトをシフトアウトし、配列の長さが0でない場合は繰り返します...配列の長さがゼロに達すると、すべての保存が成功したことがわかり、適切なアクションが実行されます。

より良い方法があるかどうか大声で疑問に思っていますか?上記のアプローチよりも残りのサービス API はコレクションを取りませんが、コレクションを保存する例があれば、サービスを変更するように依頼します。

4

2 に答える 2

6

Collection に組み込まれたメソッドはありませんがsave、これは確かに良い考えです。各モデルをループして個別に保存することは、これを実現するための非常に高価なネットワークトラフィックの方法であるため、あなたの状況はこれから利益を得るように思えます。

Backbone は、サーバーへの投稿に jQuery の AJAX を使用しています。そのため、コレクションでそれを利用してみませんか?


$.ajax({
  type: "POST",
  url: "/my/api",
  dataType: "JSON",
  data: myCollection.toJSON()
});

これにより、オブジェクトの配列が JSON として/my/apiエンドポイントのサーバーにポストされます。これをコレクションまたは別のオブジェクトのメソッドに簡単にまとめることができます。

于 2013-01-02T02:42:51.030 に答える
1

コレクションに直接保存機能を使用してそれを行います:

Backbone.sync('update', this, {
    success: function() {
        alert('saved');
    }
});

それが役に立てば幸い。

于 2013-01-02T07:55:25.187 に答える