如何从车把中的每个区块中获取价值

时间:2015-01-22 13:29:45

标签: jquery json handlebars.js

我有以下模板:

<script id="basketTemplate" type="text/x-handlebars-template">
    {{#each this}}  
        <div>{{Title}}</div>               
        <div>{{Count}}</div>        
    {{/each}}
    <div>{{TotalCount}}</div>
</script>

each块中,每个人都很好,但我无法获得TotalCount的价值, 我怎么能这样做?

编辑: 我使用了以下JSON对象:

[{"ID":1,"Image":"no-pic.png","Count":2,"Title":"XXX","TotalCount":10},{"ID":2,"Image":"no-pic.png","Count":2,"Title":"XXX","TotalCount":10}, ...]

现在,请解释一下,我该怎么做,谢谢:)

请注意: 我想一次显示TotalCount,所以我不能把它放到迭代中!

1 个答案:

答案 0 :(得分:1)

this在Handlebars模板的最外层范围内使用时,指的是传递给已编译模板的整个对象,在您的情况下是包含大量对象的数组。

因此,对于您的确切问题,您必须注册一个帮助器,您必须从每个对象中获取所有总和然后将它们相加。

Handlebars.registerHelper('sumTotalCount', function(list) {
  return list.reduce(function(a, b) {
    return a.TotalCount + b.TotalCount;
  });
});

并像这样使用

{{#sumTotalCount this}}
    <div>{{output}}</div>
{{/sumTotalCount}}

为你做了JSBin