淘汰JS。来自动态输入数量的计算总计

时间:2012-11-21 22:16:51

标签: knockout.js

我有一个来自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),还可以动态添加新行。 希望这是有道理的。谢谢!感恩节快乐!

1 个答案:

答案 0 :(得分:0)

计算的observable是你需要的:

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