在下划线模板中,如果像这样的逻辑,我可以这样做:
<% if(type === 'video') { %>
// Something
<% } %>
在把手中我可以做类似的事吗?试过这个,但它不起作用:
{{#if type === 'video'}}
// Something
{{/if}}
尝试使用助手,但仍然没有运气:
Handlebars.registerHelper('isVideo', function(type) {
if(type === 'video') {
return true;
}
return false;
});
{{#if isVideo type}}
// Something
{{/if}}
答案 0 :(得分:2)
有一种方法
Handlebars.registerHelper('ifCond', function(v1, v2, options) {
if(v1 === v2) {
return options.fn(this);
}
return options.inverse(this);
});
然后你可以像这样在
中调用模板中的帮助器 {{#ifCond v1 v2}}
{{v1}} is equal to {{v2}}
{{else}}
{{v1}} is not equal to {{v2}}
{{/ifCond}}
答案 1 :(得分:0)
您可以使用if帮助器有条件地渲染块。如果其参数返回false,undefined,null,“”或[](“falsy”值),Handlebars将不会渲染块。
<div class="entry">
{{#if author}}
<h1>{{firstName}} {{lastName}}</h1>
{{/if}}
</div>
与空({})上下文一起使用时,将导致:
<div class="entry">
</div>
您可以在上下文中加入videoType
等内容并检查。