Dorado使用一系列對(duì)象實(shí)現(xiàn)了瀏覽器中的數(shù)據(jù)模型,建立這樣一個(gè)數(shù)據(jù)模型的主要目的就是實(shí)現(xiàn)數(shù)據(jù)綁定。此處所說的數(shù)據(jù)綁定是指"雙向數(shù)據(jù)綁定",關(guān)于"單向數(shù)據(jù)綁定"和"雙向數(shù)據(jù)綁定"的概念我們?cè)谇懊娴奈淖种刑岢鲞^。此處再做一個(gè)簡(jiǎn)單的回顧。
- 數(shù)據(jù)綁定(雙向數(shù)據(jù)綁定)?在Dorado中控件與DataSet建立的綁定關(guān)系是真正的數(shù)據(jù)綁定。在數(shù)據(jù)與控件之間的關(guān)系應(yīng)該的雙向的,即相互的??丶梢灾鲃?dòng)的讀取、修改與之綁定的數(shù)據(jù),同時(shí)數(shù)據(jù)也可以向控件發(fā)送各類消息以通知控件自身發(fā)生的變化,使控件可以及時(shí)的響應(yīng)綁定數(shù)據(jù)發(fā)生的變化。
- 單向數(shù)據(jù)綁定?在Dorado的單向數(shù)據(jù)綁定中,控件與數(shù)據(jù)之間的作用關(guān)系是單向的,即控件可以主動(dòng)的讀取、修改與之綁定的數(shù)據(jù),但數(shù)據(jù)不會(huì)主動(dòng)向與之綁定的控件發(fā)送任何消息。
要實(shí)現(xiàn)真正的數(shù)據(jù)綁定,必須使用專用的數(shù)據(jù)載體并在數(shù)據(jù)載體中為綁定提供特別的支持。只有這樣數(shù)據(jù)才會(huì)具備向控件發(fā)送消息的特性。而且,除了專用的數(shù)據(jù)載體之外我們還需要其它的一些新的對(duì)象,不過把他們串聯(lián)起來應(yīng)該并不很難理解,這些新東西包括,
- Entity、EntityList?- Dorado世界中的JSON和Array,之前我們?cè)?jīng)提到過,要實(shí)現(xiàn)真正的數(shù)據(jù)綁定,數(shù)據(jù)必須有能力感知自身的變化并且自動(dòng)向外界發(fā)送相應(yīng)的消息。顯然,依靠純粹的由JSON和Array是無法做到這一點(diǎn)的,我們必須對(duì)數(shù)據(jù)進(jìn)行包裝。Entity和EntityList就對(duì)JSON和Array的包裝。
- DataType?- 即數(shù)據(jù)類型,用來描述各種數(shù)據(jù)尤其是實(shí)體數(shù)據(jù)。例如在應(yīng)用中有一種實(shí)體數(shù)據(jù)是員工信息,通過DataType我們可以描述出員工信息中總共包含多少屬性,以及每個(gè)屬性的標(biāo)題、顯示格式、校驗(yàn)規(guī)則等等。DataType聽起來有點(diǎn)像數(shù)據(jù)字典,在對(duì)它有進(jìn)一步的認(rèn)識(shí)之前我們確實(shí)可以先這樣認(rèn)為。
- DataSet?- 在Dorado中DataSet這個(gè)控件幾乎沒做什么,他最大的作用就是給了一組數(shù)據(jù)(特指Entity或EntityList)一個(gè)id,使得我們可以向使用控件那樣的使用這些數(shù)據(jù)。讓數(shù)據(jù)控件與數(shù)據(jù)之間的綁定關(guān)系,看起來好像是控件與控件之間的綁定。所以DataSet事實(shí)上就是有了名字的數(shù)據(jù)。
- DataProvider?- DataProvider用于從Server端轉(zhuǎn)載數(shù)據(jù)到瀏覽器中,包含異步和同步兩種執(zhí)行模式。DataSet通過DataProvider從Server端得到數(shù)據(jù)。
- DataResolver?- DataResolver用于將DataSet中的數(shù)據(jù)抽取出來發(fā)送到Server端,以便于Server端進(jìn)行相應(yīng)的處理。
- DataPath?- 一種用于描述如何提取、挖掘數(shù)據(jù)的表達(dá)式。其作用比較類似于XML中所使用的XPath。DataPath既可以作用在普通的JSON數(shù)據(jù)上,也可以作用在Dorado所特有的EntityList+Entity數(shù)據(jù)上。
可能僅僅這樣說并不能很好的幫助你理解這些對(duì)象的作用,建議您閱讀此篇文字來加深理解------數(shù)據(jù)模型對(duì)象的總體介紹 (V)。
下面是關(guān)于這些對(duì)象的更加詳細(xì)的介紹。
-
- DataType (CE)
-
- Entity、EntityList (CE)
-
- DataSet (CE)
-
- DataProvider和DataResolver (CE)
-
- DataPath (CE)
更多建議: