一、问题描述
如果不是Push进数组不会出现__ob__: Observer
如果要使用push就会出现__ob__: Observer
二、问题分析
获取数组长度就是 this.chooseId.length 这个方法的,这个不要怀疑,而你 输出this.chooseId.length 为0 是因为,你获取的时机不对,不信?你把 打印放在一个 setTimeout 函数里。也就是说你还没有给 this.chooseId 添加数据的时候就获取长度了。
数组为空,但是点开又有数据,最终找到原因:
因为开始空数组没赋值,赋值之后,因为是地址引用,那个数组已经被修改了。显示零是原来的长度。但包含修改后的结果。换句话说,就是由于restangular异步请求数据,在执行restangular时(由于异步,此时,开始回调函数还没有运行,但是restangular后面的congsole.log已经开始运行,所有显示为空,但是在回调函数也运行完毕后,数组赋值了,所以就会将结果也显示上去)。
var arr = []; console.log(arr); arr.push({x:1},{y:2}); console.log(arr);
结果:
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接