迷你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)