迷你MVVM框架 avalonjs 0.7發布


本版本主要是添加了template綁定與對掃描機制進行大量改良

template綁定的語法為ms-template-id="aaa", id為頁面上的某個元素節點,aaa為ViewModel的一個對象屬性。建議將此對象屬性的名字標識為不可監控的,即$tmplOpts,因為用戶可能用不到此對象,我們就無需立即轉換它為子ViewModel。id是一個script標簽,其type屬性改成瀏覽器不認識的MIME,比如"xxx/text",然后在script標簽間填寫內容就行了。里面也可以使用綁定屬性。當avalon掃描到帶着ms-template屬性的元素時,它會根據id取得script標簽的innerHTML,然后將它賦給此元素,然后框拐杖再取aaa對象為其綁定內容。

掃描機制的改良在於,每次都對元素取innerHTML,判定里面有沒有ms-或{{}}字樣,如果沒有我們就不再往下掃描。

其他改進還有,重構了scanTag的循環, 不再使用nextSibling方式進行遍歷,因為這很容易在if綁定中由於我們突然移除元素而中斷循環。為此,if綁定也省去幾行代碼。

重構了scanAttr,讓其更精簡。

重構了removeItemView內部方法,此方法用於監控數組的splice方法,現在移除元素更快了。

重構了addItemView內部方法,此方法用於監控數組的push方法,現在插入元素更快了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM