把手不认识助手
我发现这个帮手在线,检查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}}