如何使用 Handlebars 三元助手?

How to use Handlebars ternary helper?

this answer 之后,我写了一个像

这样的助手
module.exports.register = function (Handlebars) {
    Handlebars.registerHelper('ternary', function(test, yes, no) {
        return test ? yes : no;
    });
};

我确定助手已加载并正在定义,但无法弄清楚使用它的语法。我试着像

一样使用它
<div>{{ternary(true, 'yes', 'no')}}</div>

但这会导致 assemble 构建错误

Warning: Parse error on line 10:
...<div>{{ternary(true, 'yes',
----------^
Expecting 'ID', 'DATA', got 'INVALID' Use --force to continue.

使用这样的助手的正确语法是什么?

Handlebars 助手:http://handlebarsjs.com/#helpers 不遵循模板中的 JavaScript 语法。您可以像这样使用它们:

<div>{{ternary true "yes" "no"}}</div>

2017 年 7 月 14 日更新

由于两个字符串在 JavaScript 中都被视为真值,我已将代码更改为以下内容:

{{input value=email placeholder="Enter Email" class="form-control"
    disabled=(if isResetting 1 0)
}}

==============================

原答案

如果 {{if}} 尝试使用内联怎么样?

{{if user.isAdmin "True" "False" }}

根据文档,这对我有用:https://handlebarsjs.com/guide/builtin-helpers.html#if

{{#each langs }}
    <a class="navbar-item {{#if active}}is-active{{else}}{{/if}}" href="#{{code}}">
        {{label}}
    </a>
{{/each}}

在我看来,handlebars 的能力不足以做到这一点?我试过了(经过多次不同的尝试);

<li class="{{#if meta.name === 'dashboard'}} active {{else}} undefined">

不工作:s

看起来你不能用字符串来做。也许只有布尔值。