y0s*_*shi 6 javascript ember.js
我想用 EmberJS 复制一个复杂的对象。该对象包含数组、其他对象、数据值、字符串和其他值。我看到 Copy 方法已被弃用,有一个名为 ember-copy 的插件可以替代它。
我尝试使用 ember-copy 插件,但是当我将第二个参数设置为 true(表明我想要深层复制)时,它说我无法复制未实现 Ember.Copyable 的对象。我将此对象转换为 EmberObject,传递 Copyable 混合,但即使如此,它仍然表示我需要实现 Copy 方法。我不明白如果我需要手动实现它,为什么我需要 ember-copy 插件。
我相信克隆对象应该是框架必须能够做到的事情。我使用的每个框架都提供了一种毫不费力地做到这一点的方法,但对于 Ember 来说这似乎是一件很难的事情。
您应该调用 Ember 的copy助手来无缝地深度复制复杂对象。
它接受两个参数,obj和deep。
obj(Object)是要克隆的对象,deep(Boolean)如果为 true,则将创建该对象的深层副本。
例如。
obj1 = {name: 'john', surname: {paternal: 'Doe', maternal: 'Cena'}};
obj2 = Ember.copy(obj1, true); // creates deep clone of my obj.
Run Code Online (Sandbox Code Playgroud)