我正在尝试解决 ko 映射的一个小问题。场景是我的 ViewModel 基本上是一个对象的集合。每个对象都是通过 json 调用创建的,以这种方式:
var ViewModel = ko.observableArray();
$.getJSON(url, function(data) {
ViewModel.push(ko.mapping.fromJSON(data));
});
这完美地工作,我可以在我的 HTML 中做各种魔术。问题是,例如,如果我想在我的收藏中添加一些东西,比如说支持客户端“添加和编辑”场景。我想做类似的事情:
<input type="button" value="add new" data-bind="click: AddNew" />
我希望 ViewModel 中的 AddNew 函数类似于:
function AddNew() {
this.push(// WHAT HERE?);
}
基本上我需要推送一个与另一个已经存在的对象相同的对象,但当然所有属性都被删除了......
我正在考虑一种从列表中“克隆”一个对象并将所有可观察对象设置为空的方法,但恐怕我不知道从哪里开始:/