1

ビュー モデルを JSON 文字列としてデータベースに保存したいと考えています。アイデアは、JSON を読み戻し、ビュー モデルのデータをロードする直接的な方法を使用して、ビュー モデルを再ロードできるということです。

ノックアウトのドキュメントから:

// Load and parse the JSON
var someJSON = /* Omitted: fetch it from the server however you want */;
var parsed = JSON.parse(someJSON);

// Update view model properties
viewModel.firstName(parsed.firstName);
viewModel.pets(parsed.pets);

それはすべてうまくいきますが、モデルを既に初期化しており、すでに保存したモデルで更新するだけで、配列のドロップダウンリストで最初に選択したエントリを選択する方法がわかりません.

別の言い方をすれば、モデルを保存するときに、ペットのドロップダウン リストで「猫」が選択されています。次に、ドロップダウン リストの選択を「犬」に変更します。保存したモデルを再ロードするときに、ドロップダウン リストの選択を「Cat」にリセットする必要があります。

保存されたモデルから読み込む必要があるオブジェクトの配列がいくつかあり、それを行うのが非常に難しいように見えるため、これについて少し心配しています。

アイデアや提案は大歓迎です:)

4

1 に答える 1

1

あなたが探しているのは、Knockout のマッピング プラグインです。 http://knockoutjs.com/documentation/plugins-mapping.html

JSON とオブザーバブルの両方を処理するメソッドがあります。

したがって、あなたの例では次のことができます:

var viewModel = ko.mapping.fromJSON(someJSON);

そして、サーバーに戻る準備ができたら:

var jsonData = ko.mapping.toJSON(viewModel);

必要に応じて、オブジェクト リテラル ヘルパーもあります (ko.mapping.toJS & ko.mapping.fromJS)。

于 2013-02-07T01:18:17.507 に答える