我正在尝试创建一个自定义的hbs帮助程序,并在我的页面中将它用于我的express.js应用程序。我是这样做的,但它一直在说:
失踪助手" if_eq"
我的页面:
<html>
<head>
<script src="javascripts/handlebars-v4.0.6.js" type="text/javascript"></script>
<script src="javascripts/hbs_funcs.js"></script>
</head>
<body>
{{#if_eq page "home"}}
<li class="active"><a href="/home ">LOBBY</a></li>
{{else}}
<li><a href="/home ">LOBBY</a></li>
{{/if_eq}}
</body>
</html>
这是我的hbs js文件:
Handlebars.registerHelper('if_eq', function (a, b, opts) {
if (a == b) // Or === depending on your needs
return opts.fn(this);
else
return opts.inverse(this);
});
答案 0 :(得分:1)
我通过将函数移动到服务器端来修复此问题,如下所示:
var hbs = exphbs.create({
defaultLayout: 'main', //we will be creating this layout shortly
helpers: {
if_eq: function (a, b, opts) {
if (a == b) // Or === depending on your needs
return opts.fn(this);
else
return opts.inverse(this);
}
}
});
答案 1 :(得分:-2)
HBS模板在后端呈现,但您的帮助程序在前端注册。在您使用它的地方注册帮助程序。