これは、次の2つの手順で実現できます。
computedAge
(1)計算されたプロパティを含むデータリスト内のすべてのアイテムのインスタンス化関数を作成します。
function Item(data) {
this.name = ko.observable(data.name);
this.age = ko.observable(data.age);
this.computedAge = ko.computed(function(){
return 100 - this.age();
}, this);
}
(2)単純な作成ではなく、インスタンスを作成するためにソース配列をマップしますobservableArray
。
self.browsers = ko.observableArray(
ko.utils.arrayMap(
datastore.initialData,
function(data){ return new Item(data); }
)
);
実例: http: //jsfiddle.net/xp6xa/
更新:self.calculatedCellTemplate
自己更新セルを取得するには、次のよう
に定義することを忘れないでください。
self.calculatedCellTemplate = '<span data-bind="text: $parent.entity.computedAge"></span>';
http://jsfiddle.net/xp6xa/3/