Skip to content
/ xbind Public

vmodel是一款轻量级的MVVM框架, 旨在于轻量, 易用, 易于扩展.

Notifications You must be signed in to change notification settings

sprufu/xbind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

482 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xbind是一款轻量级的MVVM框架, 旨在于轻量, 易用, 易于扩展.

在使用angularjs及avalonjs的过程中, 发现angularjs的过滤规范化, 很难入手, 其条条款款太多, 同时, 其强大的功能背后使其失去了轻量概念, 而avalonjs过度追求完美, 导致最后一点都不完美, 使用vbscript使其预先定义属性才能使用, 与javascript的理念不同, 难让javascript用户信服.

自定义压缩javascript

用git拷贝项目源文件到本地:

git clone https://github.com/sprufu/xbind.git

进入vmodel目录并压缩javascript

cd vmodel && npm run build

注意事项

  1. 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: 单页应用组件, 还在开发中.

一些其它的mvvm框架

  1. google的 argularjs
  2. 微软的 knockoutjs
  3. 苹果的 emberjs
  4. 还有一个国产的 avalonjs
  5. ractive ractive
  6. rivetsjs rivetsjs
  7. vuejs vuejs
  8. way.js way.js

TODO

  1. 列表处理当前记录, 当前的内容与列表某条记录一至处理.
  2. 绑定时, 如果同时绑定几个参数, 当这几个参数中同时变化时, 应该只更新一次视图.
  3. 监听数组长度变化.

Issue

  1. parseExecuteItem解析字符串时无法解析json串等复杂对象表达式

Change

v0.4.3 2015-01-18

  1. chg: 改名为xbind.
  2. add: 使用grunt-jsdoc生成doc文档
  3. add: 采用jshint规范化代码.
  4. add: 添加数据加载完时自动扫描一次结点配置项, 而不强制扫描.
  5. add: 添加convert转换过滤器.
  6. add: 添加排序过滤器sort.
  7. add: 添加foreign过滤器.
  8. fix: 实现过滤器参数可以用数据变量.
  9. add: 添加解析字符串结果缓存, 提高扫描性能.
  10. fix: 分离出parseUrlParam不常用函数
  11. fix: 实现ajax的jsonp请求.
  12. rmv: 删除Array.prototype.remove扩展, 用内部函数代替其功能.
  13. rmv: 删除grid.js组件.

v0.4.2 2015-01-06

  1. chg: 改extend名为mix, 改extend用于构造函数继承.
  2. chg: 更改一些内容函数名称
  3. fix: 当传入一个字符串参数时, 以其为id创建一个空数据对象.
  4. fix: ie678中domready后删除不要的绑定函数.
  5. add: 添加根据字段名获取数据方法.
  6. chg: 重构$get方法.
  7. fix: 优化parseString解析空字符串连接问题.
  8. add: 添加生成监听函数缓存.
  9. fix: 修复ajax的html响应得到文本结点的问题.
  10. fix: 实现ajax的script, xml响应.
  11. fix: 修改ajax只有urlencoded方式的处理数据转换.
  12. fix: 修复ajax缓存控制无效问题.
  13. fix: 修复手动实现Function.prototype.bind没有正常接受参数的问题.
  14. fix: 去掉ajax绑定没必要生成闭合作用域.
  15. fix: 修复ajax正常响应时没有清除错误信息的bug.
  16. chg: 事件绑定采用统一的x-on处理.
  17. fix: 修复config配置无深层拷贝问题.
  18. fix: 修改each循环时不过滤函数.
  19. add: ajax添加statusCode及headerCode项, 遇到相关响应状态或响应头时执行指定代码

v0.4.1 2015-01-01

  1. fix: 修复$get多级子方法时, 其绑定调用者始终指向model自身.
  2. add: 添加param过滤器.
  3. chg: 优化ie678的ready事件.
  4. fix: 修复x-repeat, x-include内存泄漏问题.
  5. fix: 修复处理表达式中文处理出错问题.
  6. add: 添加循环函数each方法.
  7. add: 添加x-repeat循环对象支持.

v0.4.0 2014-12-24

  1. add: 添加ajax条件加载机制, 避免数据没有准备好时加载数据, 也能让用户手工按需要加载数据.
  2. add: 添加属性操作统一方式x-attr
  3. add: 添加default默认值过滤器.
  4. remove: 删除字符串属性绑定, 布尔属性绑定, 其功能统一由x-attr处理
  5. fix: 修复repeat绑定与其它绑定共同使用时预先扫描问题.
  6. change: 分离出filter, form, grid模块, 可自由使用或移出.
  7. change: 重命名watch, unwatch, fire方法.

About

vmodel是一款轻量级的MVVM框架, 旨在于轻量, 易用, 易于扩展.

Resources

Stars

Watchers

Forks

Packages

No packages published