avalon数组特性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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数组特性的主要内容,如果未能解决你的问题,请参考以下文章