2014-10-17 121 views
0

例子:如何计算聚合物中重复结合的总数?

<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

我会坚持这种逻辑到一个函数(比如,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; 
} 

我会避免太多的登录在第e模板本身。

+0

我试过了下面看编辑 – 2014-10-17 21:44:17