把不监听的属性名传入到$skipArray中时,在使用$watch重新监听时,值发生变化是不会回调了。
如果想让$skipArray里面的属性重新获得$watch重新监听的功能就使用$fire
*注意,要让$skipArray里面的属性重新获得$watch重新监听的功能,$watch不能使用*符号,必须指定详细的属性名。
参数1:传入要重新监听的属性名,
参数2:传入新值,
参数3:旧值
avalon.ready(function(){
var vm=avalon.define({
$id:'ceshi',
value1:'测试值',
$skipArray:['value1'],
fn:function(){
// vm.value1='测试值11';
//console.log(vm['value1']);
vm.$fire('value1','测试值11','测试值'); //属性名,新值,旧值
}
});
vm.$watch('value1',function(a,b,c){ //不能使用*符号,只能指定具体属性
console.log(a,b,c);
});
avalon.scan(document.getElementsByTagName('body')[0]);
});
<body ms-controller="ceshi">
<button ms-click="@fn()">{{@value1}}</button>
</body>
去控制台看看是否重新获取$watch回调功能。