首页 > 代码库 > avalon数组特性(二)
avalon数组特性(二)
上一篇,讲了avalon数组的元素添加方法,这一篇讲avalon的数组监听。
avalon有一个监听变化的方法,即$watch。这个方法可以监听avalon属性发生的变化,监听到变化后会触发定义的方法。avalon数组被监听时有一个问题:只能监听数组长度的变化,数组元素的修改无法被监听。如下例:
var vm = avalon.define({
$id:‘test‘,
arr:[]
});
setTimeout(function(){
vm.arr = [1,2,3,4,5];
},1000);
setTimeout(function(){
avalon.Array.ensure(vm.arr,6)
},2000);
setTimeout(function(){
avalon.Array.remove(vm.arr,6)
},3000);
vm.$watch(‘arr‘,function(){
console.log(‘数组改动了‘)
})
控制台会输出三次:数组改动了,说明数组的创建,元素的添加和删除都会被监听,下面再看看另外一种情况:
var vm = avalon.define({
$id:‘test‘,
arr:[]
});
setTimeout(function(){
vm.arr = [1,2,3,4,5];
},1000);
setTimeout(function(){
vm.arr[0]=0;
},2000);
vm.$watch(‘arr‘,function(){
console.log(‘数组改动了‘)
})
arr成功修改下标为0的元素,然而控制台只输出一次:数组改动了,说明avalon的$watch只能监听数组长度变化,无法监听数组个别元素被修改的情况。
后来通过进一步的学习发现还是有办法对avalon的数组元素进行监听的,但是好困,明天再说^_^
avalon数组特性(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。