0

我正在使用 Web 服务将数据加载到客户端。出于绑定目的,我需要扩展我获得的数据。即我不想按摩服务器端的所有数据。

例如,对象Trip { Id: "123", Status: "P" }

在 HTML 中,我绑定table到 observableArray 并希望显示“Pending”而不是“P”。我来自 Silverlight/MVVM,通常您会使用转换器或只是将新的 R/O 属性添加到对象。

不确定在 knockout.js 中应该如何处理这种情况

4

2 回答 2

1

你可以在这里找到你需要的一切:

http://net.tutsplus.com/sessions/knockout-简洁/

好好读书。

于 2013-04-16T21:31:04.730 回答
0

如果你只是在寻找一个转换器,那么computedobservables 是一个不错的选择。

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>

你可以在这个小提琴中看到它

于 2013-04-16T21:35:40.367 回答