xbind是一款轻量级的MVVM框架, 旨在于轻量, 易用, 易于扩展.
在使用angularjs及avalonjs的过程中, 发现angularjs的过滤规范化, 很难入手, 其条条款款太多, 同时, 其强大的功能背后使其失去了轻量概念, 而avalonjs过度追求完美, 导致最后一点都不完美, 使用vbscript使其预先定义属性才能使用, 与javascript的理念不同, 难让javascript用户信服.
用git拷贝项目源文件到本地:
git clone https://github.com/sprufu/xbind.git进入vmodel目录并压缩javascript
cd vmodel && npm run build- option标签必须写明value属性, 否IE浏览器在model变化时, view没显示正常
如:
<option>item</option>==><option value="item">item</option>
如以下组件可以自由选择是否压缩到你的最终版本里:
- filter: 过滤器组件, 如果你的项目中用不到过滤器, 可以去掉这组件:
--without-filter=true - form: 表单处理组件, 目前这个组件仅处理表单验证, 如果你有更好的验证模块, 可以忽略这组件:
--without-form=true - watch: x-watch指令标签组件, 默认没有加入这组件, 用
--with-watch=true添加 - store: 小数据存储组件, 还在开发中.
- view: 单页应用组件, 还在开发中.
- google的 argularjs
- 微软的 knockoutjs
- 苹果的 emberjs
- 还有一个国产的 avalonjs
- ractive ractive
- rivetsjs rivetsjs
- vuejs vuejs
- way.js way.js
- 列表处理当前记录, 当前的内容与列表某条记录一至处理.
- 绑定时, 如果同时绑定几个参数, 当这几个参数中同时变化时, 应该只更新一次视图.
- 监听数组长度变化.
- parseExecuteItem解析字符串时无法解析json串等复杂对象表达式
- chg: 改名为xbind.
- add: 使用grunt-jsdoc生成doc文档
- add: 采用jshint规范化代码.
- add: 添加数据加载完时自动扫描一次结点配置项, 而不强制扫描.
- add: 添加convert转换过滤器.
- add: 添加排序过滤器sort.
- add: 添加foreign过滤器.
- fix: 实现过滤器参数可以用数据变量.
- add: 添加解析字符串结果缓存, 提高扫描性能.
- fix: 分离出parseUrlParam不常用函数
- fix: 实现ajax的jsonp请求.
- rmv: 删除Array.prototype.remove扩展, 用内部函数代替其功能.
- rmv: 删除grid.js组件.
- chg: 改extend名为mix, 改extend用于构造函数继承.
- chg: 更改一些内容函数名称
- fix: 当传入一个字符串参数时, 以其为id创建一个空数据对象.
- fix: ie678中domready后删除不要的绑定函数.
- add: 添加根据字段名获取数据方法.
- chg: 重构$get方法.
- fix: 优化parseString解析空字符串连接问题.
- add: 添加生成监听函数缓存.
- fix: 修复ajax的html响应得到文本结点的问题.
- fix: 实现ajax的script, xml响应.
- fix: 修改ajax只有urlencoded方式的处理数据转换.
- fix: 修复ajax缓存控制无效问题.
- fix: 修复手动实现Function.prototype.bind没有正常接受参数的问题.
- fix: 去掉ajax绑定没必要生成闭合作用域.
- fix: 修复ajax正常响应时没有清除错误信息的bug.
- chg: 事件绑定采用统一的x-on处理.
- fix: 修复config配置无深层拷贝问题.
- fix: 修改each循环时不过滤函数.
- add: ajax添加statusCode及headerCode项, 遇到相关响应状态或响应头时执行指定代码
- fix: 修复$get多级子方法时, 其绑定调用者始终指向model自身.
- add: 添加param过滤器.
- chg: 优化ie678的ready事件.
- fix: 修复x-repeat, x-include内存泄漏问题.
- fix: 修复处理表达式中文处理出错问题.
- add: 添加循环函数each方法.
- add: 添加x-repeat循环对象支持.
- add: 添加ajax条件加载机制, 避免数据没有准备好时加载数据, 也能让用户手工按需要加载数据.
- add: 添加属性操作统一方式x-attr
- add: 添加default默认值过滤器.
- remove: 删除字符串属性绑定, 布尔属性绑定, 其功能统一由x-attr处理
- fix: 修复repeat绑定与其它绑定共同使用时预先扫描问题.
- change: 分离出filter, form, grid模块, 可自由使用或移出.
- change: 重命名watch, unwatch, fire方法.