2016-02-16 76 views
2

我想创建一个自定义的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> 

这里是我的哈佛商学院的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); 

});

回答

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模板渲染后端,但你的助手在前台登记。在你使用它的地方注册助手。