【发布时间】:2017-04-30 12:33:50
【问题描述】:
我在网上找到了这个检查变量是否等于某个字符串的助手。我尝试将此帮助程序添加到我的 index.hbs 文件中,但出现以下错误:缺少帮助程序:“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}}
【问题讨论】:
-
所以你没有使用车把也没有使用快速车把......你用什么来渲染车把模板?我可以看到问题,但我需要更多信息才能给你一个合适的答案。
-
@MarcosCasagrande 我使用
res.render()。在 app.js 中,我通过以下方式将 Handlebars 设置为我的视图引擎:app.set('view engine', 'hbs'); -
@MarcosCasagrande 所以我查看了我的 node_modules 并且 express-generator 包含了 hbs。这是否意味着我必须在 app.js 中添加帮助程序?如果是这样,为什么官方文档中没有提到它?根据them“可以从模板中的任何上下文访问帮助程序。”
-
检查我的答案。
标签: javascript node.js express handlebars.js