mvc4 のモデルから Knockout でビュー モデルを作成しています。マッピングプラグインを使用しています。現在のコードは次のようになります。
最初に、必要なさまざまな MVC4 モデルを 1 つの ko ビューモデルにマージします。
var mergedData = $.extend(true, {}, initialEventData,
{ "Tickets": initialTicketData }, { "TimeZones": timeZones }
);
2 番目:ビューモデルに計算関数を追加するためのマッピングを追加します。
var mapping = {
'Tickets': {
create: function (options) {
return new updatedTicket(options.data);
}
}
}
var updatedTicket = function (data) {
ko.mapping.fromJS(data, {}, this);
this.formattedPrice = ko.computed(function () {
return "$" + parseFloat(this.Price()).toFixed(2);
}, this);
}
最後に:バインディングを適用します。
var eventViewModel = ko.mapping.fromJS(mergedData, mapping);
ただし: Tickets モデルが空に戻る場合があります。これが発生すると、マッピング プラグインは監視可能な配列を作成しません (当然のことです)。新しいチケットをプッシュできるように、マッピングされたプロパティを含む空の配列を作成する必要があります。