2012-02-14 12 views
0

私はknockoutjsが好きです.DOMに向かってコードを直接コーディングするのが早くなくなります。私は質問/回答サイトで何かを説明するつもりであることを理解するのが難しいです。 (これはおそらく一般的なMVC/MVVMの質問です)複数のモデル

私のデータモデルで私は[id、description]とanswer [id、question_id、text]という質問があります。ブラウザはtbodyにバインドされている質問のリストを要求し、一方の列は質問の説明を表示し、もう一方は回答テキストボックスにバインドする必要があります。

これを実行する明白な方法の1つは、QuestionAnswer [question_id、answer_id、question_descrition、answer_text]モデルを持つことです。

QuestionAnswerを作成するための理想的な場所です

:理想的には私は別々にそれらを維持するいくつかの方法が存在しない場合、私は、次の質問を持って、/受信/保存を送信するときに、変換を最小限にするために別々それらを維持したいと思いますモデル?私の賭けは、それがサーバー上で作成された慣例によるものです。

どこかにそのような例がある場合は、私にそれを指摘してください。そうでなければ、それは良い例になると思います。

私はこの周りに私の頭を包んで助けてください、ありがとう!

答えて

0

Ok、 私の質問が実際に求めていることについて私の考えを集めました。 クライアント側でデータバインディングを行うには、明らかにそこにデータモデルが必要です。私は何度も何時に送る必要があるかに葛藤していました。

質問/回答サイトのアイデアを続行するには、質問がある回答リストを送信する必要があります。そうすれば、回答リストにバインドして、各回答の質問の説明を最初のテーブルの列にバインドすることができます。

質問エディタを作成したい場合は、完全に別のデータ構造を送信して、以前に使用された質問構造を再利用しないでください。

自分自身を参照するより複雑なデータ構造を送信する方法があると思いました。 JSonではいくつかの余分なライブラリを使って明らかに可能です。

1

サーバー上で結合モデルを作成し、それをjsonにシリアル化し、マッピングプラグインを使用して、シリアライズされたリストをビューモデルに追加することができます。

私はそのようにしていますhereそれは複合モデルではありませんが、違いはありません。特にあなたの関係は1対1のようです。

ビューモデルで「オブジェクト」を作成する必要がある場合は、hereのようにマッピング定義を使用できます。

私はサーバで私のmodelをビルドするのにC#を使っていますが、あなたは快適であれば何でも使用できます。

マッピングプラグインのクールなことは、ビューモデルにデータを追加して、動作に集中できることです。

+0

ありがとう、私はMVC3も使用しています。あなたは私の考えを集めるのを助けました。 – Reyn