2016-02-16 112 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模板渲染後端,但你的助手在前臺登記。在你使用它的地方註冊助手。