avalon基础示例
<body ms-controller = "test">
<input ms-duplex='@name' />
<p>Hello,{{ @name }}</p>
<ul>
<li ms-for='($index,el) in @array'>{{ $index }}---{{ el }}</li>
</ul>
</body>
<script type="text/javascript">
var vm = avalon.define({
$id:"test",
name:"司徒正美",
array:[11,22,33]
})
setTimeout(function(){
vm.array.set(0,444)
},3000)
</script>
avalon监控属性、非监控属性$watch
<style type="text/css">
.ms-hover div:hover{
background-color:yellow;
}
</style>
<script type="text/javascript">
var vm=avalon.define({
$id:"test",
aaa:"aaa",
$bbb:"bbb", //$开头的非监控属性
ccc:"ccc",
$skipArray:['ccc'], //放入非监控属性数组的元素会自动转换为非监控属性
change:function(parm){
vm[parm]=new Date-0; //写法等价于:vm.aaa=new Date; 时间戳
}
});
//$watch函数参数:$watch(监听vm的属性名,function(a,b)) -->回调函数:a:属性的新值,b属性的旧值
vm.$watch("aaa",function(a,b){
console.log("aaa","新值:"+a,"旧值:"+b);
});
//avalon $开头的属性为非监控属性,avalon会进行忽略处理
vm.$watch("$bbb",function(a,b){
console.log("$bbb","新值:"+a,"旧值:"+b);
});
vm.$watch("ccc",function(a,b){
console.log("ccc","新值:"+a,"旧值:"+b);
});
</script>
</head>
<body ms-controller = "test" class="ms-hover">
<div ms-duple=" aaa " ms-click="change('aaa')">{{ aaa }}</div>
<div ms-duple=" $bbb " ms-click="change('$bbb')">{{ $bbb }}</div>
<div ms-duple="ccc" ms-click="change('ccc')">{{ ccc }}</div>
</body>