2010-12-14 7 views
1

グッド:JavaScript:オブジェクトの配列をDOM表示にバインドするアルゴリズムまたはメソッド?

我々はjQueryとアヤックスを使用してネストされたオブジェクトのJSON配列を送信します()。私たちはJQueryとMicrosoftのテンプレートを使ってコンテンツをレンダリングします。 400ミリ秒で100個のオブジェクトを送信します。これは、10秒で50製品の同等のサーバーレンダリングよりもはるかに高速です。

難易度:

我々は、それが表すDOMのHTML要素にJavaScriptオブジェクトの配列をバインドする必要があり、すなわち、HTML入力への変更は、JavaScriptのオブジェクトに戻って反映されます。私たちの難しさは、私たちのオブジェクトがネストされていることである、とだけ選択したオプションが含まれています。

Product[].Department[].deptid; 
// We only store the departments for which this product participates 

私たちはそれらを一緒に結合させるために存在するオブジェクトのプロパティとHTML要素の両方を必要とjQueryのを使用してリンクするマイクロソフトのデータを試してみました。それは上記の状況にはうまくいかない。私たちは、これを行うことができます:

Product[].Department[].Dept.id; 
Product[].Department[].Dept.name; 
Product[].Department[].Dept.selected; // true if selected, false if not 
// This requires all possible options in all needed products. Yuck 

はどんな例が最高それらが表すHTML要素にJavaScriptのネストされたオブジェクトの配列を結合処理する方法にそこにありますか?

フォーム要素をサーバーに送信しません。その代わりに、それらをJSON配列に集めて、それをサーバーに送り返します。それは非常に高速ですが、アセンブリは面倒です。

答えて

3

それはあなたの記述からでトラブルを抱えている内容を正確に把握するのは難しいですが、役立つかもしれない二つのものがあるように思える:

1)あなたはjQueryのデータを使用してDOM要素にデータを保存することができますが( )メソッドhttp://api.jquery.com/data/

2)フォーム要素の値は、change()イベントとval()メソッドを使用して取得できます。

しかし、どのJavascriptオブジェクトがフォーム要素と連動するかを知る方法の質問のように、より基本的なものに慣れているようです。それは事実ですか?

+0

はい。私は修正されたもの、削除されたもの、サーバに各オブジェクトと共にCRUD(CUD)のフラグを送るために何が新しくなったのかを知る必要があります。 –

+0

私はそのための一般的な図書館、特にあなたが保存する必要がある特定の構造を考慮していない。ただし、どの要素がどのデータに影響するかを判断できるのであれば、フォーム要素がユーザーによって変更されたときに、モデル(Javascriptオブジェクト)を更新するのはあまり複雑ではありません。 –

+1

Jamie Thomasのこのフレームワークはかなりいいです:https://github.com/jamiemthomas/jquery-datalink。 –

関連する問題