0

次のような API からの JSON データがあります。

 var self = this;
    var init = {
    "topLevel": {
        "secondLevel": [
            {
                "Cost": 1,
                "AllocatePct": .9,
                "thirdLevel: [ {Cost:1,Name:"A1"},{Cost:2,Name:"A2"},{Cost:9,Name:"A3"} ]
            },
            {
                "Cost": 2,
                "AllocatePct": .1,"thirdLevel: [ {Cost:11,Name:"B1"},{Cost:4,Name:"B2"},{Cost:9,Name:"B3"} ]
            }
        ],
        "total": 3
       }
    };
    ko.mapping.fromJS(init,{},self);  

私のHTMLは次のようになります:

<div data-bind="foreach:topLevel.secondLevel">
    <div data-bind="foreach:thirdLevel">
        <input type="text" data-bind="value: Cost">
    </div>
</div>
<div data-bind="??????">
     <!--have the correct number of textboxes and store the totals-->
</div>

SecondLevel と thirdLevel には動的なデータ数があります。合計を計算したい。例: A1+B1 の合計。A2+A2 の合計の別のテキスト ボックス。行を動的に削除するボタン (つまり、A1 と B2) もあり、その場で新しい行を追加することもできます。これが理にかなっていることを願っています。ありがとうございました!ハッピーサンクスギビング!

4

1 に答える 1

0

計算されたオブザーバブルが必要です。

http://knockoutjs.com/documentation/computedObservables.html

于 2012-11-22T04:23:06.750 に答える