复制可观察数组

时间:2013-04-24 05:15:00

标签: knockout.js knockout-2.0

如何获取knockout observable数组中的项目副本。更改复制的项目不应影响原始项目。

我想要做的是在打开弹出窗口之前,当用户点击取消按钮重新加载原始值时创建项目副本

2 个答案:

答案 0 :(得分:1)

您可以使用标准JavaScript技术克隆阵列。请参阅以下内容:

Copying array by value in JavaScript

因此,您可以复制如下:

var newArray = viewModel.observableArray().slice(0);

答案 1 :(得分:0)

以下用于创建JS数组的副本。

var newArray = viewModel.observableArray().slice(0); ?/copies the internal array
viewModel.copyobservableArray(newArray); // set in new observable

对于ko observableArray,我们需要执行以下操作以使其成为新副本

如果数组的内部也是对象,那么你应该克隆它们以避免通过引用传递。