JavaScript 中 avalon綁定屬性總結(jié)
avalon是前端MVVM框架,將所有前端代碼徹底分成兩部分,視圖的處理通過綁定實現(xiàn)(angular有個更炫酷的名詞叫指令),業(yè)務(wù)邏輯則集中在一個個叫VM的對象中處理。我們只要操作VM的數(shù)據(jù),它就自然而然地神奇地同步到視圖。
$model(所有非$屬性),$event(事件對象)
1、作用域圈定
ms-controller:按著就近原則自下而上掃描DOM樹
ms-important:僅掃描本節(jié)點及之下作為掃描區(qū)
ms-skip:使綁定失效
2、ms-duplex雙向綁定屬性:除了綁定(VM同步數(shù)據(jù)到V)數(shù)據(jù)到DOM節(jié)點中,還會偷偷在節(jié)點上綁定一個監(jiān)聽事件,當(dāng)節(jié)點數(shù)據(jù)發(fā)生變化時,及時把V中的數(shù)據(jù)同步到VM中
(1)text,password,textarea要求綁定值為一個字符串(ms-duplex-text)
(2)radio:綁定為boolean(ms-duplex-boolean)
(3)checkbox:綁定為數(shù)組(ms-duplex-string)
(4)select:綁定為字符串或者數(shù)組(ms-duplex-string)
后邊是ms-duplex2.0綁定屬性
3、ms-visible:類似toggle,表達式為true顯示,通過把display設(shè)置為block或者none顯示或隱藏
4、插入移除處理ms-if:添加節(jié)點元素顯示元素,設(shè)置<!--ms-if-->注釋隱藏節(jié)點(刪除節(jié)點)
5、數(shù)據(jù)緩存ms-data-*,保存對象或者數(shù)組使用ms-data(綁定在DOM節(jié)點對象上而不是作為屬性),保存在節(jié)點上,顯示時處理返回,綁定為data-*屬性
6、屬性操作ms-class(class),ms-duplex(value),ms-attr,ms-href,ms-src
boolean屬性:ms-attr-disabled,ms-attr-readonly,ms-attr-selected,ms-attr-checked
字符串固有屬性:ms-attr-id,ms-attr-name,ms-attr-title,ms-src,ms-href
自定義屬性:ms-attr-data-url,ms-attr-data-id
ms-class: ms-class='active' ms-class='active:isOk'
ms-active,ms-hover
7、ms-duplex2.0
ms-duplex-string,ms-duplex-number,ms-duplex-checked,ms-duplex-boolean,ms-data-duplex
輔助data-duplex-focus,data-duplex-changed,data-duplex-event
8、樣式操作:ms-css(內(nèi)聯(lián)),ms-class(外部引入)
<button ms-click="toggle" ms-css-width="100">顯示</button> <span ms-if="flag">{{message}}</span>
9、事件綁定:ms-on-eventName,ms-eventName
ms-mouseenter,ms-mouseleave(僅作用于被選元素),ms-input(ms-on-input),多事件綁定順序與自然數(shù)無關(guān),與事件順序有關(guān)
10、循環(huán)操作
ms-each-遍歷臨時變量(在父級元素上綁定)
ms-repeat-遍歷臨時變量(在子元素上綁定)
ms-with-遍歷臨時變量(在父級元素上綁定)
數(shù)組:el默認臨時變量,$index當(dāng)前元素的索引,$first是否為第一個元素boolean,$last,$remove返回一個function刪除當(dāng)前元素,$outer內(nèi)層循環(huán)外層循環(huán)變量
哈希(對象):$key鍵名,$val鍵值,$outer ($outer.$index)
<ul> <li ms-repeat-e="data">{{e}}</li> </ul> <ul ms-each-e="data"> <li>{{e}}</li> </ul>
修改對象的鍵值:
修改對象的鍵值對:
修改數(shù)組的值:數(shù)組對象.set(下標,值)
修改數(shù)組中對象值:數(shù)組對象[下標].鍵名 = 鍵值;
遍歷回調(diào)函數(shù)(屬性)
data-each-rendered
data-with-rendered
data-repeat-rendered
data-with-sorted
循環(huán)時使用size計算數(shù)據(jù)長度,而不是length,使用ms-if-loop而不是ms-if,因為ms-if優(yōu)先于ms-repeat執(zhí)行
11、模版引用
12、屬性監(jiān)聽
13、模塊通信
下面介紹下avalon作用域圈定方法
在使用avalonJS做前端開發(fā)時,需要圈定數(shù)據(jù)綁定作用域,存在三種方式:
(1)ms-controller:此綁定屬性會按著就近原則來圈定作用域,先從本標簽開始網(wǎng)上查找
(2)ms-important:此綁定屬性僅查找本標簽,倘若查找不到vm綁定數(shù)據(jù)則原樣輸出在頁面上
(3)ms-skip:此綁定屬性的作用是使數(shù)據(jù)綁定失效,即插值表達式原樣輸出,不管查找到作用域內(nèi)綁定數(shù)據(jù)與否
以上所述是小編給大家介紹的JavaScript 中 avalon綁定屬性總結(jié),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
可以自動輪換的頁簽 tabs with auto play fucntion
HTML、CSS方面改寫了一下結(jié)構(gòu),用了一個DL javascript方面可以選擇不斷自動循環(huán),或者只循環(huán)一次的,點擊以后繼續(xù)循環(huán),或者停止循環(huán)2008-02-02SwfUpload在IE10上不出現(xiàn)上傳按鈕的解決方法
在測試中發(fā)現(xiàn)使用了SwfUpload實現(xiàn)的無刷新上傳功能,在IE10上竟然無法使用了,難道SwfUpload不支持嗎?下面與大家分享下通過修改SwfUplad.JS文件讓其支持ie102013-06-06javascript調(diào)試之DOM斷點調(diào)試法使用技巧分享
在開發(fā)中,偶爾會遇到類似這樣的問題:頁面上的一個DOM元素被改了屬性,但是我們卻不知道是哪個腳本更改的2014-04-04動態(tài)調(diào)整textarea中字體的大小代碼
用js批量輸出select事件控制textarea中字體的大小的代碼。2009-12-12