【发布时间】:2012-06-17 19:14:22
【问题描述】:
我正在从 mvc4 中的模型在 Knockout 中创建视图模型。我正在使用映射插件。当前代码如下所示。
首先:我将需要的不同 MVC4 模型合并到一个 ko 视图模型中。
var mergedData = $.extend(true, {}, initialEventData,
{ "Tickets": initialTicketData }, { "TimeZones": timeZones }
);
第二个:我添加一些映射以将计算函数添加到我的视图模型。
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 模型可能会返回空。发生这种情况时,映射插件不会创建可观察数组(显然)。我需要创建一个带有映射属性的空数组,以便推送新票。
【问题讨论】:
标签: asp.net-mvc knockout.js knockout-mapping-plugin