js とノックアウト マッピング プラグイン
私の問題はこれです:
私はモデルを持っていて、実行時にオブザーバブルを次のように追加しています:
viewModel[value] = new ko.observable(valueFromTextBox);
これは問題なく動作し、オブザーバブルは画面にバインドされており、この部分は問題なく動作します。問題の部分は、そのモデルを取得して JSON に変換しようとしたときです。
var JSON = ko.mapping.toJS(page.model);
これをデバッグすると、page.model にすべての新しいオブザーバブルがあることがわかります。しかし、私の最終的な JSON には、最初からモデルに含まれていたものしかありません。後で実行時に追加されるものではありません。実行時にオブザーバブルを追加する正しい方法は何ですか?
ありがとう
編集:
シナリオ全体を説明し、ソリューションを回答として投稿します。
私は ASP.Net MVC を使用しています。ビュー モデルを作成し、サーバーから実際のモデルを受け取るために ajax 呼び出しを行いました。次に使用します:
ko.mapping.fromJS(model, page.model);
その後、ユーザーが私が使用した新しいフィールドを追加すると、バインディングが後で発生します。
viewModel[value] = new ko.observable(valueFromTextBox);
そして最後に、私が使用したサーバーに送り返す前に:
var JSON = ko.mapping.toJS(page.model);
その時点で、追加されたフィールドは JSON に存在しませんでした。