本版本最大的改進是引進了ms-with綁定,現在可輕松遍歷對象了。
改進列表如下:
- 重新使用082的scanNodes方法,因為有關舊式IE下UI渲染鎖死的問題已經解決了。
- 優化each綁定與Collection
- 添加CSS3 animationend事件支持
- 添加ms-with綁定
- fix IE9-10獲取option元素的value的BUG
- 改良 AMD加載器與jQuery這些在內部使用了全局define方法的庫的兼容問題
- 抽象setNumber方法來處理splice,slice這兩個數組方法的參數
- 分割Configue, AMDLoad, DomReady等模塊,讓框架的可讀性更強
ms-with語法為 ms-with="obj" 子元素里面用$key, $val分別引用鍵名,鍵值
例子:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type='text/javascript' src="avalon.js"></script>
<script>
var a = avalon.define("xxx", function(vm) {
vm.obj = {
aaa: "xxx",
bbb: "yyy",
ccc: "zzz"
}
vm.first = "司徒正美"
})
setTimeout(function() {
a.obj.aaa = "7777777777"
a.first = "清風火忌"
}, 1000)
setTimeout(function() {
a.obj.bbb = "8888888"
}, 3000)
</script>
</head>
<body ms-controller="xxx">
<div ms-with="obj">
<div>{{$key}} {{$val}}</div>
</div>
<hr/>
<div ms-with="obj">
<div>{{$key}} {{$val}}</div>
</div>
<hr/>
<div ms-with="obj">
<div>{{$key}} {{$val}}</div>
</div>
</body>
</html>
它在chrome的截圖:
它在IE10的截圖:
它在IE6下完美運行的截圖:
CSS3 animationend事件的例子:
迷你MVVM框架在github的倉庫https://github.com/RubyLouvre/avalon
