如何计算聚合物中重复结合的总和?

时间:2014-10-17 16:19:56

标签: polymer

示例:

    <div id="order">
        <template repeat="{{items as item}}">
            <p>
                <span>{{item.id}}</span>
                <span class="price">{{item.price}}</span>
                <span class="qty">{{item.qty}}</span>
            </p>
            {{cpuTotal(item.qty*item.price)}}
        </template>
        <p>Total {{total}}</p>
    </div>
    <script>
        Polymer('my-form', {
            total:0,
            cpuTotal:function(x){
                this.total=this.total+x
                console.log(this.total)                
            }
        })
    </script>
</polymer-element>

有没有办法可以使用计算绑定来完成它,所以我可以{{total=total+(item.price*item.qty)}}

编辑: 我现在遇到的问题是this.total是每个单独项目的总和?因此,对于模板中的每个生成的项目,我都有一个单独的总数而不是它们的总和。

1 个答案:

答案 0 :(得分:1)

我会把这个逻辑强加到一个函数(比如computedTotal())然后代替这个:

<p>Total: {{total}}</p>

我会这样:

<p>Total: {{computedTotal()}}</p>

您的computedTotal()看起来像这样:

computedTotal: function() {
    var total = 0;
    for (var i = 0; i < this.items.length; i++) {
       total += (this.items[i].price * this.items[i].qty);
    }
    return total;
}

我会避免在模板中加入过多的登录信息。