把不监听的属性名传入到$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回调功能。