0

我对淘汰赛很陌生。但我想做的是在尝试将视图模型发送回服务器之前清理它。我有几个不想发回服务器的 ko.observable 和 ko.computed 字段(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                

            } 
        };

谁能指出我如何做到这一点的正确方向?

感谢您的帮助!

4

1 回答 1

1

你应该看看淘汰赛映射插件

它允许您在映射时指定要使用的映射,并且您可以告诉它忽略属性:

var mapping =
{
    'ignore': ["propertyToIgnore", "alsoIgnoreThis"]
};
var jsData = ko.mapping.toJS(viewModel, mapping);
于 2013-03-27T20:05:11.293 回答