我很擅长淘汰赛。但我想要做的是在尝试将视图模型发送回服务器之前清理视图模型。我有几个ko.observable& ko.computed fields我不想发送回服务器(progress& entryType)
我有一个绑定到此事件的按钮。我首先根据其id找到vm中的项目。删除不必要的字段是我遇到麻烦的地方。
self.addTransaction = function(transaction) {
var selected = ko.utils.arrayFirst(self.transactions(), function(currentTransaction) {
return currentTransaction.id() == transaction.id();
});
if (selected) {
console.log(selected);
var items = ko.toJS(selected);
var mappedItems = ko.utils.arrayMap(items, function(item) {
delete item.progress && item.entryType;
return item;
});
console.log(JSON.stringify(ko.toJS(mappedItems), null, 2));
//send to server
}
};
有人能指出我如何做到这一点的正确方向吗?
感谢您的帮助!
答案 0 :(得分:1)
它允许您指定映射时使用的映射,您可以告诉它忽略属性:
var mapping =
{
'ignore': ["propertyToIgnore", "alsoIgnoreThis"]
};
var jsData = ko.mapping.toJS(viewModel, mapping);