「Vol」のオブザーバブルを含む「Parts」のオブザーバブル配列を使用しています。現在、各パーツのボリュームと合計量が表示されています。アプリケーションが起動すると、合計金額が正しく追加されます。ただし、パーツのボリュームを変更しても、合計量は再計算されません。
HTML:
<ul>
<li data-bind="foreach: Parts">
<input data-bind="value: Vol" />
<br/>
</li>
</ul>
<br/>
<br/>
<span data-bind="text: fullVol "></span>
Javascript:
function Part (data) {
var self = this;
self.Vol= ko.observable(data.Vol);
}
function AppViewModel() {
var self = this;
self.Parts = ko.observableArray([new Part({"Vol": 1}), new Part({"Vol":2}), new Part({"Vol":3})]);
self.fullVol = ko.computed(function() {
var total = 0;
$.each(self.Parts(), function() { total += (this.Vol() ) })
return total;
});
}
ko.applyBindings(new AppViewModel());
これが私のJsFiddleです:http://jsfiddle.net/jwinstonaspen/Zmkew/6/