基本 'if' 语句在 handlebars JS 中不起作用
Basic 'if' statements do not work in handlebars JS
我正在使用 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
---------------------^
我知道 handlebars 不期待 ===
,但这不是 if
的重点吗?
如何在把手中使用 if
语句?
车把的 if-helper
only accepts a boolean as an argument。您有两个选择:
使用现有的处理程序
将 page === 'help'
的结果作为模板中的变量传递并执行如下操作:
{{#if isPageHelp}}
<h1> Help! </h1>
{{/if}}
制作你自己的处理器
你可以implement the ===
operator with your own handler. Thanks @sp00m.
试试这个助手
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);
});
我正在使用 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
---------------------^
我知道 handlebars 不期待 ===
,但这不是 if
的重点吗?
如何在把手中使用 if
语句?
车把的 if-helper
only accepts a boolean as an argument。您有两个选择:
使用现有的处理程序
将 page === 'help'
的结果作为模板中的变量传递并执行如下操作:
{{#if isPageHelp}}
<h1> Help! </h1>
{{/if}}
制作你自己的处理器
你可以implement the ===
operator with your own handler. Thanks @sp00m.
试试这个助手
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);
});