把手不认识助手

我发现这个帮手在线,检查variables是否等于某个string。 我试图添加这个帮手到我的index.hbs文件,但我得到以下错误:缺less帮手:“if_eq”

有人能告诉我如何解决这个问题吗? 我在官方的Handlebars文档中做了他们要求我做的事情,所以我不明白。 我使用NodeJS / Express,但require('handlebars')require('express-handlebars') ,因为这是express-generator为我生成的。

index.hbs:

 <script> Handlebars.registerHelper('if_eq', function(a, b, opts) { if(a == b) return opts.fn(this); else return opts.inverse(this); }); </script> {{#each tasks}} {{#if_eq status 'unfinished'}} [do something] {{else}} [do something else] {{/if_eq}} {{/each}} 

快递发电机使用: hbs包,你可以在这里看到:

在这里输入图像说明

所以你需要先在服务器端注册助手,像这样:

 const hbs = require('hbs'); const express = require('express'); const app = express(); app.set('view engine', 'hbs'); hbs.registerHelper('if_eq', function(a, b, opts) { if(a == b) return opts.fn(this); else return opts.inverse(this); }); //... rest of your server code 

index.hbs删除帮助程序,因为这是为了在客户端注册帮助程序,并且在服务器端呈现index.hbs

index.hbs

 {{#each tasks}} {{#if_eq status 'unfinished'}} [do something] {{else}} [do something else] {{/if_eq}} {{/each}}