我有以下模板:
<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
,所以我不能把它放到迭代中!
答案 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。