我们如何在Express-Handlebars的If块中写入条件?

时间:2018-10-17 21:04:16

标签: conditional-statements express-handlebars

我正在使用Express把手,并且被困在比较IF ELSE块中的值的地方。是否内置了帮助器?我花了很多时间来找到解决方案,但我没有得到。帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我已解决此问题。 参考:

  

https://code-maven.com/handlebars-conditionals

解决方案: 要使用Express Helperbars在两个值之间设置相等的'=='条件,请执行以下步骤。

1-创建助手

hbs.js

module.exports = {

    if_eq: function(a, b, opts) {
        if (a == b) {
            return opts.fn(this);
        } else {
            return opts.inverse(this);
        }
    }
}

2-在 app.js 文件

中注册这些帮助器
// Handlebars Helpers
const {
  if_eq
} = require('./helpers/hbs'); //path to hbs.js file

// Handlebars Middleware
app.engine('handlebars', exphbs({
   helpers: {
    if_eq:if_eq
  },
  defaultLayout: 'main'
}));

3-在HTML代码中使用if_eq帮助程序。我用来检查单选按钮,如果性别是'male'并且类似于'female'情况。

    {{#if_eq idea.gender 'male'}}
            Female<input type="radio" class="form-control" name="gender" value="female">
            Male <input type="radio" class="form-control" name="gender" value="male" checked>
          {{else}}
            Female<input type="radio" class="form-control" name="gender" value="female" checked>
            Male <input type="radio" class="form-control" name="gender" value="male" >
{{/if_eq}}