【发布时间】:2014-07-11 21:38:51
【问题描述】:
我想在一个 knockoutjs observableArray 中克隆/(深度)复制一个项目。
我在网上找不到有关此问题的任何信息。每个人都想克隆洞数组;)
这里是 jsfiddle: http://jsfiddle.net/drchef/dCHMC/1/
你可以看到,我正在使用我在 SO 上找到的 deepcopy 方法。
this.cloneLine = function() {
//This 2 lines is what i found on SO. Should work, but doesn not :(
//cloning the second line (sry hardcoded...)
var lastLine = this.lines()[1];
this.lines.push(jQuery.extend(true, {}, lastLine));
};
在视图模型输出中,您可以看到副本正在运行……但在内部,新项目和克隆项目的引用仍然是相同的值。 如果您在新行中更改了一个值,则它也会在原始行中更改。
背景: 我有一个输入网格,如果用户在最后一行并在想要一个新行 + 最后一行的相同数据中点击“输入”
我不想编写一个方法或某个女巫正在克隆每一个数据的东西。在虚拟机的每次更改中,我都必须更新映射。 ;(
谢谢
【问题讨论】:
标签: javascript jquery knockout.js