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

How to get value out of each block in handlebars

我有以下模板:

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

each 块中,everytinh 很好,但我无法获得 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 一次,所以我不能将其放入迭代中!

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