私は次のモデルを持っています:
var model = {
A: 'One',
B: 'Two',
C: 'Three'
};
さまざまな UI 要素をこれらのフィールドにバインドすると、うまく機能します。ただし、変更をサーバーに保存できるように、モデルを JavaScript オブジェクトに戻します。
var goingToServer = ko.toJS(model);
goingToServer
プロパティ A、B、および C が含まれます。ただし、プロパティ C は決して変更されないデータの巨大なチャンクであるとしましょう。これをサーバーに送り返すのは避けたいです。
モデルを JavaScript オブジェクトに変換するときに、事前定義された一連のフィールドtoJS()
のみを含める方法はありますか?
私が調査していることの 1 つは、ノックアウト マッピング プラグインです。includeと呼ばれる設定があり、次のように文書化されています。
ビュー モデルを JS オブジェクトに戻す場合、デフォルトでは、マッピング プラグインには元のビュー モデルの一部であったプロパティのみが含まれます。ただし、元のオブジェクトの一部ではなくても、Knockout によって生成された _destroy プロパティも含まれます。 . ただし、この配列をカスタマイズすることを選択できます。
ただし、このプラグインは文書化されているようには機能しないようko.mapping.toJS()
ですinclude
。. この機能は、元のモデルにはなかった追加のフィールド['A', 'B']
を含めることを意図していると思います。
オブジェクトを生成し、サーバーに送信する前に不要なプロパティを手動で削除するなどのハックなことをする以外に、モデルを JavaScript オブジェクトに変換するときに特定のプロパティを除外する方法はありますか?