如何获取knockout observable数组中的项目副本。更改复制的项目不应影响原始项目。
我想要做的是在打开弹出窗口之前,当用户点击取消按钮重新加载原始值时创建项目副本
答案 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,我们需要执行以下操作以使其成为新副本
如果数组的内部也是对象,那么你应该克隆它们以避免通过引用传递。