我正在使用Web服务将数据加载到客户端。出于绑定目的,我需要扩展我得到的数据。即我不想按摩服务器端的所有数据。
例如,对象Trip { Id: "123", Status: "P" }
在HTML中,我将table
绑定到observableArray,并希望显示“待定”而不是“P”。
我来自Silverlight / MVVM,通常你会使用转换器或只是添加新的R / O属性到对象。
不确定如何在knockout.js中处理这种情况
答案 0 :(得分:1)
答案 1 :(得分:0)
如果您只是在寻找转换器,computed
可观察物是一个很好的候选者。
var Tip = function(data) {
var self = this;
self.id = data.id;
self.status = ko.observable(data.status);
//You may prefer fullStatus, or statusName
self.statusConverter = ko.computed(function() {
return self.statusMap[self.status()];
});
};
Tip.prototype.statusMap = {
P: "Pending",
O: "Open",
C: "Closed"
};
你可以像这样绑定:
<td data-bind="text: statusConverter"></td>
您可以在this fiddle
中看到它