たくさんのko.observable、ko.observableArray、およびこれらのオブザーバブルをさらに含むネストされたオブジェクトを含む複雑なモデルがあります。
もともと私は、Jsonデータを取得し、そのオブザーバブルにデータを入力するために、構成でより大きなモデルを構成する各モデル内でメソッドを作成する必要がありました。今私はko.mappingプラグインを試しましたが、それを使用すると:
ko.mapping.fromJS(jsonData, {}, existingModel);
これはほとんどのオブジェクトで機能するように見えますが、これを行うと、オブジェクトが完全に上書きされるように見えることに気付きました。ノックアウトjs検証を使用しているため、次のようになります。
this.Name = ko.observable().extend({ required: true });
this.Age = ko.observable().extend({ required: true, digits: true });
問題は、マッピングモジュールを使用すると、これらの検証属性が削除されたように見えることです。そのため、オブジェクトスキーマを改ざんするのではなく、マッピングプラグインに値を更新させる方法があります...
モデルにJsonデータを適用するためのより良い方法があれば、ko.mapping以外の別のメカニズムを使用できてうれしいです。