0

この例では何かを見逃したに違いありません。誰かが私に何が間違っているのか教えてもらえますか?

リンク: http: //jsfiddle.net/EBxy4/42/

画面:共有画面

行1のボックス1の値を更新しても、下隅の値は変更されません。

コードは次のとおりです。

function revenueStream(w1, w2, w3) {
    var self = this;
    self.week1Amount = ko.observable(w1);
    self.week2Amount = ko.observable(w2);
    self.week3Amount = ko.observable(w3);
}

function revenueStreamCategory(revenueStreams) {
    var self = this;
    self.revenueStreams = ko.observalrevenueStreams;

    self.week1Sum = ko.computed(function () {
        var sum = 0.0;

        ko.utils.arrayForEach(self.revenueStreams, function(item) {
            sum += item.week1Amount();
        });      
        return sum;
    });    
}

var rs = [];
rs.push(new revenueStream(10, 11, 12));
rs.push(new revenueStream(13, 14, 15));    
rs.push(new revenueStream(16, 17, 18));

var vm = new revenueStreamCategory(rs);      

ko.applyBindings(vm, document.getElementById("test"));​
4

1 に答える 1

1

あなたの問題はあなたのバインディングにあります、これを置き換えてください:

<td><input data-bind="value: week1Amount()" /></td>

と:

<td><input data-bind="value: week1Amount" /></td>

これが実用的なフィドルです:

http://jsfiddle.net/EBxy4/44/

合計ではなく連結していた小計も修正しました。

于 2012-12-20T21:27:12.570 に答える