我们如何在 Express-Handlebars 的 If 块中写入条件?
How can we write the condition(s) in If block in Express-Handlebars?
我正在使用 Express 车把,我卡在了比较 IF ELSE block.Is 中的值的点上,那里有内置的助手?我花了很多时间来寻找解决方案,但我没有得到。帮助将不胜感激
我已经解决了这个问题。
参考:
解决方法:
要使用 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 code.I 中使用 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}}
我正在使用 Express 车把,我卡在了比较 IF ELSE block.Is 中的值的点上,那里有内置的助手?我花了很多时间来寻找解决方案,但我没有得到。帮助将不胜感激
我已经解决了这个问题。 参考:
解决方法: 要使用 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 code.I 中使用 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}}