我正在使用express-handlebars
,并具有以下最小模板:
<!DOCTYPE html>
<html>
<body>
{{#if page === 'help'}}YAAAY{{/if}}
</body>
</html>
无法解析为:
Error: C:\Users\mike\myapp\views\error.hbs: Parse error on line 6:
...ody> {{#if page === 'help'}}YAAAY{{/i
---------------------^
我知道车把不希望有===
,但这不是if
的重点吗?
如何在车把中使用if
语句?
答案 0 :(得分:4)
车把的if-helper
only accepts a boolean as an argument。您有两种选择:
将page === 'help'
的结果作为变量传递到模板中,然后执行以下操作:
{{#if isPageHelp}}
<h1> Help! </h1>
{{/if}}
您可以implement the ===
operator使用自己的处理程序。谢谢@sp00m。
答案 1 :(得分:1)
试试这个助手
const Handlebars = require('handlebars');
Handlebars.registerHelper('ifCond', function (v1,v2,options) {
if (v1 == v2)
return options.fn(this);
else
return options.inverse(this);
});
Handlebars.registerHelper('exCond', function (v1,v2,options) {
if (v1 != v2)
return options.fn(this);
else
return options.inverse(this);
});