avalon $fire重新监听方法

2016-9-12    分类: avalon.js笔记

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