模板
<script id='handlebar-template'>
{{#each tags}}
{{#isObject this}}
<span>Object</span>
{{else}}
<span>String</span>
{{/isObject}}
{{/each}}
</script>
脚本
<script>
Handlebars.registerHelper('isObject', function(o) {
return typeof o === "object";
});
var props = {"tags": ["Google"]}
var html = $("#handlebar-template").html();
var template = Handlebars.compile(html);
console.log(template(props));
</script>
预期输出
<span>String</span>
实际输出
false
执行 else
块但输出返回false
而不是<span>String</span>
。
答案 0 :(得分:2)
您正在使用帮助程序错误或帮助程序错误。
在第一种情况下,更改模板以使用{{#if}}
帮助程序:
{{#if (isObject this)}}
<span>Object</span>
{{else}}
<span>String</span>
{{/if}}
看看这个fiddle。
在第二种情况下,您需要在帮助程序中自己实现{{else}}
逻辑
查看Handlebars阻止conditionals的帮助文档。