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 に答える