如何从把手中的每个块中获取价值
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。
我有以下模板:
<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。