无法加载Handlebars辅助函数

时间:2016-02-16 17:44:00

标签: javascript node.js express handlebars.js

我正在尝试创建一个自定义的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);

});

2 个答案:

答案 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模板在后端呈现,但您的帮助程序在前端注册。在您使用它的地方注册帮助程序。