2

私はbackbone.jsを使用してクライアント側アプリを構築しています。Backbone.syncはすべてのCRUD操作でうまく機能していますが、サーバー側の要求の1つを実装する方法がわかりません。このリクエストには、アルゴリズムパラメータを含むモデルをサーバーに送信し、アルゴリズムの結果(グラフデータポイント、表形式データなど)を含む応答を受信することが含まれます。model.save()を呼び出すことは正しいことではないように感じます。これは、バックボーンが更新されたモデルを含む応答を期待しているためですが、理想的には、応答を使用してまったく新しいモデルを作成したいと思います。

単にフォールバックしjQuery.ajax({data:model.toJson(),...})て、応答を使用して新しいモデルを作成する必要がありますか?それとも私が見逃している他の賢いものがありますか?

どうもありがとう。

4

2 に答える 2

8

やりたいことは、作成、更新、読み取り、破棄のようには聞こえません。RPC呼び出しのように聞こえます。非CRUD操作をCRUDシステムに押し込めようとする理由はありません。理にかなっているときはいつでもBackbone.sync自由に電話をかけることができ、RPCスタイルの呼び出しは手動のAJAXを実行するのに適しているように思えます。$.ajaxおそらく、success結果を1つ以上のset呼び出しに変換し、Backboneのイベントシステムにそこから取得させます。

于 2012-06-02T04:32:04.567 に答える
2

@muの答えには同意しますが、それは常に非CRUD操作をCRUD操作にカプセル化する方法であると言いたいです。

たとえば、あなたの場合、インスタンスの作成に必要なパラメータとしてサーバーに送信される属性がロードされたモデルを持つことができます。

サーバーは、たとえばモデルのエンティティを作成するPOSTアクションを期待しています。Chartサーバーはパラメータを取得してグラフを作成し、初期パラメータと結果パラメータの両方を含むグラフのJSON表現を返します。

次に、バックボーンレイヤーで、モデルには、結果データだけでなく元のデータも含めて、必要なすべてのデータが含まれます。

于 2012-06-02T13:15:47.743 に答える