ノックアウト.jsのノックアウト.マッピングプラグインを使用すると、コレクション内のアイテムを次のように作成する方法をカスタマイズできます:-
var ItemModel = function (data) {
ko.mapping.fromJS(data, {}, this);
this.FooProperty = ...;
};
var mapping = {
'Items': {
create: function (options) {
return new ItemModel(options.data);
}
}
}
this.Items = ko.mapping.fromJS(データ、マッピング);
これは、コレクションを含むプロパティ「Items」がデータに含まれていることを前提としています。しかし、データが単なる JSON 配列の場合はどうなるでしょうか? 受信データの最上位ルートにあるアイテムに作成関数をフックするにはどうすればよいですか?
ドキュメントを見ると、マッピング オブジェクトのキーは、操作対象のデータのプロパティ名にするか、インクルード、無視、コピーのいずれかにすることができるようです。このことから、受信した JSON をプロパティを使用してオブジェクトにラップし、マップしてから、結果をアンラップしない限り、目的を達成する方法がわかりません。