基本的'if'语句在车把JS中不起作用

时间:2018-08-20 15:15:12

标签: javascript node.js conditional handlebars.js express-handlebars

我正在使用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语句?

2 个答案:

答案 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);
});