2010-12-14 40 views
1

優點:JavaScript:將對象數組綁定到DOM顯示的算法或方法?

我們發送使用jQuery和阿賈克斯嵌套對象的JSON數組()。我們使用JQuery和Microsoft模板來呈現內容。它在400毫秒內發送100個對象。這比我們在10秒內完成50個產品的同等服務器渲染速度要快得多。

的難度:

我們需要綁定JavaScript對象陣列到DOM html元素它代表,即,改變的HTML輸入將反映回JavaScript對象。我們的困難是,我們的對象是嵌套的,且僅包含選擇的選項:

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

我們嘗試了微軟數據連接使用JQuery,既要有對象的屬性和html元素,以存在將它們綁定在一起。這對上述情況並不適用。我們可以這樣做:

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 

是否有任何的例子在那裏就如何最好地處理綁定一個JavaScript嵌套對象數組他們所代表的HTML元素?

我們不會將表單元素提交回服務器。相反,我們將它們收集到一個JSON數組中並將其發送回服務器。它工作得非常快,但是組裝很繁瑣。

回答

3

很難知道你用從你的描述麻煩到底是什麼,但是好像有兩件事情,可以幫助:

1)您可以使用jQuery的數據存儲在DOM元素上的數據( )方法http://api.jquery.com/data/

2)您可以使用change()事件和val()方法獲取表單元素的值。 (您也可以在API文檔中找到這些文件)。

但是您似乎可能會遇到一些更基本的問題,比如如何知道哪個Javascript對象帶有表單元素。是這樣嗎?

+0

是的。我需要知道修改了哪些內容,刪除了哪些內容,以及將每個對象的CRUD標誌(CUD)發送回服務器的新內容。 – 2010-12-14 20:57:02

+0

我不知道這是一個通用庫,特別是考慮到您需要存儲的特定結構。但是,當用戶更改表單元素時,更新模型(Javascript對象)不應太複雜 - 只要您可以確定哪些元素應該影響哪些數據。 – 2010-12-14 21:46:46

+1

這個來自Jamie Thomas的框架相當不錯:https://github.com/jamiemthomas/jquery-datalink。 – 2011-01-07 04:51:41

相關問題