在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.
使用这样的助手的正确语法是什么?
答案 0 :(得分:11)
Handlebars helpers:http://handlebarsjs.com/#helpers不要遵循模板中的JavaScript语法。您可以像这样使用它们:
<div>{{ternary true "yes" "no"}}</div>
答案 1 :(得分:6)
立即更新7/14/2017
由于这两个字符串在JavaScript中都被视为truthy值,因此我将代码更改为以下内容:
{{input value=email placeholder="Enter Email" class="form-control"
disabled=(if isResetting 1 0)
}}
============================
原始答案
如果{{if}}
尝试使用内联怎么样?
{{if user.isAdmin "True" "False" }}
答案 2 :(得分:1)
根据文档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}}
答案 3 :(得分:0)
在我看来,车把不够胜任?我试过这个(经过多次不同的尝试);
<li class="{{#if meta.name === 'dashboard'}} active {{else}} undefined">
不工作:s
看起来你不能用字符串来做。也许只有布尔值。