Ember copy array
2015-09-15 20:08
281 查看
Ember 不支持深度Copy
var dpItemDataCopy = Ember.makeArray(dpItemData); console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links); delete dpItemDataCopy[0].links; console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links);
console的结果简略给出
Object Object undefined undefined
我只删除Copy后数组第一个Object的links,但原始数组的第一个Object的links也被删除掉;
var dpItemDataCopy = Ember.makeArray(dpItemData); console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links); delete dpItemDataCopy[0].links; console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links);
既然copy不管用,换makeArray试试,但是结果还是一样的;
网上讲这是Ember的一个bug
最后解决办法
var dpItemDataCopy = dpItemData.map(function(item) { return Ember.copy(item, true) }); console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links); delete dpItemDataCopy[0].links; console.log(dpItemData[0].links); console.log(dpItemDataCopy[0].links);
console结果
Object Object Object undefined
结论
Ember copy和makeArray不支持deep复制数组若想要真正copy一个数组,可以采用上面的方式,Ember后续应该会给出新的api
参考
http://stackoverflow.com/questions/9693154/native-array-in-emberjs-does-not-support-deep-copy相关文章推荐
- linux web篇---之三--tomcat
- NFS rhel 7
- Centos6安装WordPress(二)WordPress安装
- Docker端口映射实现网络访问
- JSP第一次运行tomcat7.0的404错误
- 跟马哥学linux (lesson 7)Bash脚本基础知识
- Linux 下的yum的配置
- 分享一个典型的应用部署架构图
- Hadoop中的一些基本操作
- 在CentOS 6.5上安装NodeJS
- hadoop操作命令
- XAMPP如何修改默认的网站目录htdocs方法详解
- linux zip/unzip命令
- 何时使用hadoop fs、hadoop dfs与hdfs dfs命令
- linux密码输入显示*
- TextureView+SurfaceTexture+OpenGL ES来播放视频(三)
- Java SSH库使用简介:Apache sshd和JSch(Java Secure Channel)
- Linux磁盘和文件系统管理
- linux下C/C++,多线程pthread
- Linux磁盘和文件系统管理(6)_链接文件 ln