avalon的雙向綁定機制,是通過一條依賴鏈實現。此依賴鏈最底層是監控屬性、監控數組,中層是計算屬性、監控函數,再上點是求值函數,最上層是視圖刷新函數。 所謂計算屬性,監控屬性,監控函數屬性,我們改變它們的值,它們會引發視圖變化;而監控數組,是我們調用它的一些方法,也會引發視圖變化 ...
之前的章節許多示例代碼也或多或少地展示了如何使用ms click來綁定事件了。能直接在模板上綁定是事件,這也是靜態模板與動態綁定的一大區別。ms click不是簡單的onclick的別名,它在內部屏蔽了瀏覽器的差異,並且對許多瀏覽器暫時不支持的事件做了兼容處理。 總的來說,事件綁定是使用ms on 綁定來實現,但avalon也提供了許多快捷方式,讓用戶能直接以ms eventName調用那些常用事 ...
2014-10-09 10:16 3 5697 推薦指數:
avalon的雙向綁定機制,是通過一條依賴鏈實現。此依賴鏈最底層是監控屬性、監控數組,中層是計算屬性、監控函數,再上點是求值函數,最上層是視圖刷新函數。 所謂計算屬性,監控屬性,監控函數屬性,我們改變它們的值,它們會引發視圖變化;而監控數組,是我們調用它的一些方法,也會引發視圖變化 ...
在MVVM框架中,你都會看到頁面定了許多奇怪的屬性,比如knockout的data-☆,angular的ng-☆,avalon的ms-☆,此外還有一些只寫文本節點上的雙花括號,它們統稱為指令。ms-☆由於定義在元素節點上,是一個特性節點(Attribute),因此稱為綁定屬性。 雙花括號稱之為插值 ...
avalon的過濾器是參考自angular與rivets。它也被稱做管道文本過濾器,它的處理對象只能是文本(字符串),它只能用在文本綁定中,並且只能是雙花括號形式。下面是各大家的過濾器比較: rivetsjs <span rv-text="event.startDate | date ...
avalon最早發布於2012.09.15,當時還只是mass Framework的一個模塊,當時為了解決視圖與JS代碼的分耦,參考knockout開發出來。 它的依賴收集機制,視圖掃描,綁定的命名data-*都與knockout差不多。它總共900行。 當時的理論體現在我在注釋的這一段 ...
ms-class是avalon用得最多的幾個綁定之一,也正因為如此其功能一直在擴充中。根據時期的不同,分為舊風格與新風格兩種。 舊風格是指ms-class-xxx=”expr”,*ms-class-aaa-bbb=”expr”*。正如第三節《綁定屬性與掃描機制》所講,一個綁定屬性分成三部 ...
十來個不同的界面,分層架構是必不可少的。因此雙向綁定作為解葯,結合很早就流行的MVC框架,衍生出MVVM這 ...
一般情況下我們通過設置類名就可以改變元素的樣式,但涉及到動畫部分,就一定需要設置內聯樣式了,因此有了ms-css。*ms-css*的用法為ms-css-樣式名="樣式值", 如ms-css-width ...
在許多表單應用,我們經常遇到點擊一個復選框(或下拉框)會引發旁邊的復選框(或下拉框)發生改變,這種聯動效果用avalon來做是非常簡單的。在avalon里,存在各種綁定回調與$watch回調,完全滿足你的需求。 下面是avalon所有綁定回調。 data-duplex-changed ...