1

在下划线模板中,如果逻辑如下:

<% 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}}
4

2 回答 2

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}}
于 2013-09-23T17:18:25.903 回答
0

来自 Handlebars 文档

您可以使用 if 助手有条件地渲染块。如果它的参数返回 false、undefined、null、"" 或 [](一个“假”值),Handlebars 将不会渲染该块。

<div class="entry">
  {{#if author}}
  <h1>{{firstName}} {{lastName}}</h1>
  {{/if}}
</div>

当与空 ({}) 上下文一起使用时,将导致:

<div class="entry">
</div>

你可以在你的上下文中包含类似的东西videoType并检查它。

于 2013-09-23T17:17:32.940 回答