我正在使用web服务将数据加载到客户端。出于绑定的目的,我需要对我获得的数据进行扩展。也就是说,我不想在服务器端处理所有数据。
例如,object Trip { Id: "123", Status: "P" }
在HTML语言中,我将table绑定到observableArray,并希望显示"Pending“而不是"P”。我来自Silverlight/MVVM,通常你会使用转换器,或者只是添加新的R/O属性到对象。
不确定在knockout.js中应如何处理此方案
发布于 2013-04-17 05:35:40
如果你正在寻找一个转换器,computed observables是一个很好的选择。
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中看到它
发布于 2013-04-17 05:31:05
你可以在这里找到你需要的所有东西:
http://net.tutsplus.com/sessions/knockout-succinctly/
好好读一读。
https://stackoverflow.com/questions/16047142
复制相似问题