Emberjs中的Native Array不支持深层复制?我看到它只是在复制方法中返回切片数组。这是一个错误吗?
答案 0 :(得分:3)
目前,由@adamjmurray报道,这是对Ember的改进:https://github.com/emberjs/ember.js/issues/588
还有一个实现它的主张。您可以像这样使用它:
var NativeArray = Ember.Mixin.create(Ember.NativeArray, {
copy: function(deep) {
if (deep) {
return this.map(function(item){ return Ember.copy(item, true) });
} else {
return this.slice();
}
}
});
NativeArray.apply(Array.prototype);
答案 1 :(得分:2)
在Ember.Copyable
中,注释表明应该有一个布尔参数,如果为true则会生成深层副本,但显然它尚未实现。您始终可以使用自己的方法覆盖它。像这样的东西适用于简单的对象(注意:未经测试,所以考虑这个伪代码)
copy: function(deep) {
if(deep) return $.extend(true, [], this);
else return this._super();
}