【问题标题】:Cannot load Handlebars helper function无法加载 Handlebars 辅助功能
【发布时间】:2016-05-28 03:25:19
【问题描述】:

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

});

【问题讨论】:

    标签: javascript node.js express handlebars.js


    【解决方案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);
        }
    }
    });
    

    【讨论】:

      【解决方案2】:

      HBS 模板是在后端渲染的,但您的助手是在前端注册的。在您使用它的地方注册助手。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-31
        • 2019-01-23
        • 2016-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多