从一个可观察数组中删除项目会影响另一个可观察数组

时间:2013-11-20 21:01:03

标签: knockout.js ko.observablearray

 vm.patientList(datacontext.patientNames());
 var patientsForClient = vm.patientList.remove(function (patient) { return patient.ClientId == vm.newCase().ClientId() });
 vm.patientList(patientsForClient);

patientList和patientNames是两个可观察的数组。当我从patientList中删除项目时,我发现同样的项目也会从patientNames中删除。

1 个答案:

答案 0 :(得分:1)

这是由于两个数组都指向相同的底层数组。您需要克隆数组,然后使用克隆的数据执行所需操作,而不是传递引用。

vm.patientList(datacontext.patientNames.slice(0));