【发布时间】:2012-02-13 15:35:45
【问题描述】:
我希望能够遍历一个对象的 knockoutJS 可观察属性并将它们复制到另一个包含其他可观察属性的对象。目标对象存在于 observableArray 中(在这种情况下,选择的是目标,并在单击“编辑”按钮时设置)。
'Item' 在绑定到对话框的视图模型中传递。如果单击取消,则忽略该项目,如果单击确定,则将数据持久化在服务器上,然后将项目属性复制到选中。
目前我正在这样做:
function AttachCommitData(item) {
for ( var prop in item) {
if ( prop !== "undefined" ) {
vm.selected[item](item[prop]);
}
}
}
我不确定这是否是这样做的方法,但它会引发异常,因为该项目包含一个 observableArray,并且复制到 observable 失败。无论如何只迭代可观察对象并错过循环中的其他任何内容,例如 observableArrays、函数等?
如果您也可以提出建议,这是否是将一组可观察对象附加到另一组的最佳方法。
【问题讨论】: