迷你MVVM框架 avalonjs 1.2 發布
avalon1.2 帶來了許多新特性,讓開發更輕松!詳見如下:
升級路由系統與分頁組件。
對ms-duplex的綁定值進行增強,以前只能prop或prop.prop2,現在可以prop["xxx"]、prop[prop2]。換言之,添加對數組法對子屬性的支持。詳見這里
ms-duplex支持用JS修改 input.value觸發oninput事件(實現舊式IE下onpropertychange的功能),實現大量第三方組件都會操作 input.value,有了這功能,我們就不需要寫額外回調實現對VM對應屬性的同步,從而加強與第三方組件的整合能力。詳見這里與這里
讓ms-repeat, ms-with在目標都是對象的情況下支持data-with-sorted回調。詳見這里
添加data-widget-defined回調,this指向綁定元素,參數為新生成的VM對象。詳見這里
avalon在移除ms- controller, ms-important綁定的同時,現在會移除與其同名的類名,這是為了兼容IE6。(關于網速慢,{{}}插值表達式暴露出來的問題, 我們可以定義這樣一個樣式規則進行處理[ms-controller],[ms-important]{display:none} 為有點類于angularjs的ng-cloak指令,在掃描之前起著羞丑布的作用。對于IE6不支持屬性選擇器的問題,只能手動處理,或使用ms- text來代替{{}},這視你的用戶群體決定了——avalon最佳實踐)
重構parseExpr內部方法。
重構AMD加載器獲取相對于父路徑的邏輯。這里
重構parseData內部方法。詳見這里
avalon.require.text模塊嘗試使用HTML Imports技術加載子頁面與模板文件。詳見這里
fix ms-if 當第一次沒有定義某屬性進行隱藏后,然后再替換整個對象,讓它擁有此屬性時,注釋節點重復生成引發的BUG。 詳見這里
fix nextTick在IE6下崩潰的BUG。詳見這里
fix DOMReady在移動端如果網速過慢,不會觸發的BUG。詳見這里
移除為input添加name的特性。因為瀏覽器會提交擁有name屬性并且沒有定義disabled屬性的表單元素。私自為它添加name,會打破用戶原來的意圖。詳見這里
迷你MVVM框架在github的倉庫https://github.com/RubyLouvre/avalon
官網地址http://rubylouvre.github.io/mvvm/
有關avalon的最佳實踐或注意點請看這里, 這個我每次發布新版本都可能在這里加東西。
使用avalon做的東西:
企業級應用:超博CRM客戶關系管理系統(帳號:crm_ceo 密碼:nncb_ceo)