小胡子:仅显示密钥是否具有非假值

时间:2015-03-05 21:48:10

标签: mustache handlebars.js

在Mustache模板中,如何仅在所述值为非假值时显示包含值的块?

我需要能够显示或不显示整个块,而不仅仅是值。

例如,在Handlebars中:

{{#if name}}
    Hi {{name}}!
{{/if}}

But in Mustache,"当值为非假但不是列表时,将使用 作为上下文 (强调我的)用于单个渲染块。":

{{#person?}}
    Hi {{name}}!
{{/person?}}

但我不想设置上下文,我想检查密钥并在块内直接访问它的值。

我做了以下不成功的尝试:

{{#name}}
    Hi {{name}}!
{{/name}}

{{#name}}
    Hi {{this}}!
{{/name}}

1 个答案:

答案 0 :(得分:1)

{{#name}}Hi {{name}}!{{/name}}应该可以正常工作,因为字符串必须防止部分呈现(如果它丢失或为空)。字符串进入上下文堆栈的事实不应该打扰你:内部{{name}}标记仍将获取并呈现字符串。

如果{{#name}}Hi {{name}}!{{/name}}的行为不符合预期,则有两种可能的解释:您的输入数据不是您认为的输入数据,或者您使用的是不符合规范的Mustache实现(并且它是一个问题)。