如何深拷贝与EmberJS一个复杂的对象

问题描述 投票:3回答:3

我想复制一个复杂的对象与EmberJS。这个对象包含数组,其它的目的,数据值,字符串和其他值。我看到了复制的方法已过时,并且有一个名为烬拷贝一个插件来替换它。

我试图用余烬拷贝插件,但是当我设置第二个参数为true(表明我希望有一个深层副本),它说我不能复制的对象没有实现Ember.Copyable。我转变了这个对象的EmberObject,路过能够复制混合,但即使有,它说我需要实现一个复制方法。我不明白为什么我需要灰烬拷贝插件,如果我需要手动执行。

我相信,克隆的对象应该是一个框架必须能够做到的事情。我使用的每一个框架提供的方式有没有努力去做,但它似乎是做与Ember一个很难的事情。

javascript ember.js
3个回答
2
投票

你也可以用传播运营商(ES6)复制(和修改)的对象。在余烬文档中阐明ember.copy确实过时了。

const original = { a: 1, b: 2 };
const copy = { ...original, c: 3 }; // copy => { a: 1, b: 2, c: 3 }
const { a, ...noA } = copy; // noA => { b: 2, c: 3 }

enter image description here


0
投票

你应该叫Ember的copy助手无缝深拷贝复杂的对象。

它接受两个参数,objdeep

obj(Object)是克隆和deep(Boolean)如果为true,则对象的深层副本是由对象。

例如。

obj1 = {name: 'john', surname: {paternal: 'Doe', maternal: 'Cena'}};
obj2 = Ember.copy(obj1, true); // creates deep clone of my obj.

Ember copy helper doc.

© www.soinside.com 2019 - 2024. All rights reserved.